Re: jessie release goals
+++ Stephen Kitt [2013-05-13 19:26 +0200]:
> Yes, but that's not the problem. Take the premise that the target directory
> structure is as described above, so most library development packages ship as
> many headers as possible in /usr/include. For now we'll assume all
> mingw-w64-...-dev headers are in /usr/include/...-w64-mingw32; but to use
> mingw-targeted libraries other than mingw-w64-...-dev (libgtk for example),
> the mingw toolchain needs to look in /usr/include as well.
> This is all fine as long as libc6-dev is not installed (say perhaps with
> sbuild and cross-build-essential). But in a typical work environment,
> libc6-dev will be installed, and because we'll always be cross-compiling on
> the buildds, packages which need to build stuff for the host to run during
> the build (wine-gecko does this) need build-essential too, so libc6-dev
> headers end up in /usr/include and are picked up by the mingw toolchain.
Thank you for explaining this. I now understand your issue. It is
helpful to have an example of why a full-split might have advantages
over an 'only arch-dependent' split. Or at least that we need to be
careful about what the definition of 'arch-dependent' is, if we want
to include windows ABIs, or uclibc ABIs (I think those two cases may
well amount to the same problem). Can anyone from BSD camp tell us
whether having glibc-dev headers installed in a common dir would break
cross-building for them too?
Simon has expanded on this helpfully already: 'glibc is somewhat
special as part of the ABI' (remembering that multiarch maps to ABIs).
It's good to know about this before the design is set in stone, so
this conversation is timely. What I'm not sure about is whether the
multiarch-cross design is seriously broken or if it's just a matter of
packaging libc-dev correctly to allow for non-glibc platforms.
Multiarch has thus far largely been thought of in terms of platforms
you can also install Debian to as well as build for. But
multiarch-cross ought to be a good fit for crossing to other platforms
(within reason) too. So we should certainly consider whether we can
sensibly accomodate that or not.
I'm not quite sure how best to decide that. Some people need to try
some stuff and report back, I suspect.
Would simply moving all the libc headers to /usr/include/$multiarch
fix mingw builds? How many other libraries are similarly affected?
Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM