The Multiarch specification only covers libraries and does not specifically deal with include files.
To make multiarch useful for cross-building as well as co-installation of libraries we need to install headers to /usr/include/<triplet>, which needs an FHS exception. Here is a patch to policy to allow that. It could repeat most of the libraries section above but there seemed little point. I'm happy to expand it though if we think that would be helpful. I'm not sure if anything else in policy needs to be adjusted - I didn't see anything obvious. This change is really useful as multiarch should enormously simplify cross-building because paths don't change betwwen build-time and install time, and each architecture has a canonical path so, avoiding a whole host of problems. Whilst we are messing with everything for the multiarch library changes it makes sense to do the include file changes at the same time. Details of the multiarch cross-build stuff are here: https://wiki.ubuntu.com/MultiarchCross I would file this as a bug against debian-policy but I don't know whether it should be normative, informative, etc. Advice welcome. Wookey -- Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM http://wookware.org/
diff -urN debian-policy-3.9.1.0.orig/policy.sgml debian-policy-3.9.1.0/policy.sgml --- debian-policy-3.9.1.0.orig/policy.sgml 2010-07-26 05:44:57.000000000 +0100 +++ debian-policy-3.9.1.0/policy.sgml 2011-03-23 00:39:02.516268371 +0000 @@ -5963,6 +5963,16 @@ </item> <item> <p> + The requirement for header files to be located + directly under <file>/usr/include</file> is amended, + permitting files instead to be installed to + <file>/usr/include/<var>triplet</var></file>, in a + corresponding way to the behaviour for libraries, as + above. + </p> + </item> + <item> + <p> The requirement that <file>/usr/local/share/man</file> be "synonymous" with <file>/usr/local/man</file> is relaxed to a