On Sun, Mar 23, 2014 at 05:31:13PM +0100, Bill Allombert wrote: > On Fri, Apr 27, 2012 at 01:41:01AM -0500, Jonathan Nieder wrote: > > Hi Russ et al, > > First, thanks Jonathan a lot for providing this patch. While this is > not the full story this gives us a better basis to document multiarch. > > Some words about architecture-independent packages are in order.
Hello all, Here a slightly modified version of Jonathan patch that mention Architecture:all packages. Please comment or second it. I would like to commit it soon as a start to multiarch documentation in policy. Cheers, -- Bill. <ballo...@debian.org> Imagine a large red swirl here.
commit f90e98e2005bd2f46a6792e6cb04a12b1d300c1f Author: Bill Allombert <bill.allomb...@math.u-bordeaux1.fr> Date: Mon Mar 24 20:28:37 2014 +0100 Add ABI diff --git a/policy.sgml b/policy.sgml index ae9d173..7e2cfe8 100644 --- a/policy.sgml +++ b/policy.sgml @@ -1473,6 +1473,29 @@ zope. </sect> + <sect id="architecture"> + <heading>Architecture</heading> + + <p> + Every architecture-dependent Debian binary package must have an + <tt>Architecture</tt> control field which describes the ABI used + by dynamically-linked binaries and public shared libraries in the + package and packages it interacts with. For example, packages + built to run on a 32-bit Intel-architecture GNU/Linux system would + use an <tt>Architecture</tt> of <tt>i386</tt>. + </p> + <p> + Every architecture-independent Debian binary package must have an + <tt>Architecture</tt> control field of <tt>all</tt>. + </p> + + <p> + Unless otherwise specified, dependencies specified using the + <tt>Suggests</tt>, <tt>Depends</tt>, <tt>Recommends</tt>, and + <tt>Pre-Depends</tt> fields refer to packages of the same + architecture or <tt>Architecture: all</tt> + </p> + </sect> </chapt> @@ -2982,7 +3005,7 @@ Package: libc6 <list> <item> A unique single word identifying a Debian machine - architecture as described in <ref id="arch-spec">. + architecture as described in <ref id="arch-short-name">. </item> <item> An architecture wildcard identifying a set of Debian @@ -3089,6 +3112,180 @@ Package: libc6 See <ref id="debianrules"> for information on how to get the architecture for the build process. </p> + + <sect2 id="arch-short-name"> + <heading>Debian architecture names</heading> + + <p> + Binary programs and public shared libraries in binary + packages must use the appropriate binary format, + basic operating system interface, and procedure linkage + convention declared in the <tt>Architecture</tt> field. + <footnote> + The <tt>Architecture</tt> field indicates the system + ABI but not the precise instruction set or system + libraries used: the former is generally determined by + convention with exceptions noted in the package + description or using hwcap paths, and the latter + expressed using package dependencies. + </footnote> + </p> + <p> Binary programs and libraries that are not meant to be run + on the host system are excluded from that requirement. + </p> + + <p> + <taglist> + <tag><tt>alpha</tt></tag> + <item> + GNU/Linux, + <url id="http://www.tru64unix.compaq.com/docs/base_doc/DOCUMENTATION/V51A_HTML/ARH9MBTE/TITLE.HTM" + name="Tru64 5.1 Calling Standard for Alpha Systems"> + </item> + + <tag><tt>arm</tt></tag> + <item> + GNU/Linux, little endian, + <url id="http://infocenter.arm.com/help/topic/com.arm.doc.dui0041c/BGBGFIDA.html" + name="ARM Procedure Call Standard (obsolete)"> + </item> + + <tag><tt>armel</tt></tag> + <item> + GNU/Linux, little endian, + <url id="https://sourcery.mentor.com/GNUToolchain/kbentry39" + name="ARM GNU/Linux ABI 1.0"> + </item> + + <tag><tt>armhf</tt></tag> + <item> + GNU/Linux, little endian, + <url id="https://sourcery.mentor.com/GNUToolchain/kbentry39" + name="ARM GNU/Linux ABI 1.0">, + except that function calls use VFP Register Arguments + as described in the + <url id="http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042a/IHI0042A_aapcs.pdf" + name="Procedure Call Standard for the ARM Architecture">, + section 6. + </item> + + <tag><tt>hppa</tt></tag> + <item> + <url id="http://wiki.parisc-linux.org/ToolChain" + name="PA-RISC Linux 32-bit ELF"> + </item> + + <tag><tt>hurd-i386</tt></tag> + <item> + GNU/Hurd, + <url id="http://refspecs.linuxbase.org/elf/abi386-4.pdf" + name="Intel IA-32 psABI">, + 16-byte stack alignment + </item> + + <tag><tt>kfreebsd-i386</tt></tag> + <item> + GNU/kernel of FreeBSD, + <url id="http://refspecs.linuxbase.org/elf/abi386-4.pdf" + name="Intel IA-32 psABI">, + 16-byte stack alignment + </item> + + <tag><tt>i386</tt></tag> + <item> + <url id="http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-IA32/LSB-Core-IA32/elf-ia32.html" + name="LSB IA32 4.1">, + 16-byte stack alignment + </item> + + <tag><tt>ia64</tt></tag> + <item> + <url id="http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-IA64/LSB-Core-IA64/elf-ia64.html" + name="LSB IA64 4.1"> + </item> + + <tag><tt>m68k</tt></tag> + <item> + GNU/Linux, Motorola 68000 psABI (ISBN 978-0138776633) + </item> + + <tag><tt>mips</tt></tag> + <item> + GNU/Linux, big endian, + <url id="http://refspecs.linuxbase.org/elf/mipsabi.pdf" + name="MIPS o32 ABI"> + </item> + + <tag><tt>mipsel</tt></tag> + <item> + GNU/Linux, little endian, + <url id="http://refspecs.linuxbase.org/elf/mipsabi.pdf" + name="MIPS o32 ABI"> + </item> + + <tag><tt>powerpc</tt></tag> + <item> + <url id="http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-PPC32/LSB-Core-PPC32/elf-ppc32.html" + name="LSB PPC32 4.1"> + </item> + + <tag><tt>powerpcspe</tt></tag> + <item> + <url id="http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-PPC32/LSB-Core-PPC32/elf-ppc32.html" + name="LSB PPC32 4.1">, + except that function calls and relocations use the e500 + convention described in the ATR-SPE portion of the + <url id="https://www.power.org/resources/downloads/Power-Arch-32-bit-ABI-supp-1.0.tgz" + name="Power Architecture 32-bit ABI Supplement 1.0"> + </item> + + <tag><tt>ppc64</tt></tag> + <item> + <url id="http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-PPC64/LSB-Core-PPC64/elf-ppc64.html" + name="LSB PPC64 4.1"> + </item> + + <tag><tt>s390</tt></tag> + <item> + <url id="http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-S390/LSB-Core-S390/elf-s390.html" + name="LSB S390 4.1"> + </item> + + <tag><tt>s390x</tt></tag> + <item> + <url id="http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-S390X/LSB-Core-S390X/elf-s390x.html" + name="LSB S390X 4.1"> + </item> + + <tag><tt>sparc</tt></tag> + <item> + GNU/Linux, + <url id="http://www.sparc.com/standards/psABI3rd.pdf" + name="32-bit SPARC psABI"> + </item> + + <tag><tt>sparc64</tt></tag> + <item> + GNU/Linux, + <url id="http://www.sparc.com/standards/64.psabi.1.35.ps.Z" + name="64-bit SPARCv9 psABI"> + </item> + + <tag><tt>kfreebsd-amd64</tt></tag> + <item> + GNU/kernel of FreeBSD, + <url id="http://x86-64.org/documentation/abi.pdf" + name="AMD64 psABI"> + </item> + + <tag><tt>amd64</tt></tag> + <item> + <url id="http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-AMD64/LSB-Core-AMD64/elf-amd64.html" + name="LSB AMD64 4.1"> + </item> + </taglist> + </p> + </sect2> </sect1> <sect1 id="f-Essential">