Bug#664257: multiarch tuples are not documented/defined
- To: 664257@bugs.debian.org, 664257-submitter@bugs.debian.org
- Subject: Bug#664257: multiarch tuples are not documented/defined
- From: Bill Allombert <ballombe@debian.org>
- Date: Wed, 30 Jul 2014 16:25:32 +0200
- Message-id: <[🔎] 20140730142532.GF17330@yellowpig>
- Reply-to: Bill Allombert <ballombe@debian.org>, 664257@bugs.debian.org
- In-reply-to: <20140323163113.GA17401@yellowpig>
- References: <20120418031651.GA26748@burratino> <4F8EC6FF.3020307@debian.org> <20369.30925.929607.482074@chiark.greenend.org.uk> <87ipgo2mon.fsf@frosties.localnet> <20376.43.694136.838622@chiark.greenend.org.uk> <87sjfqm77j.fsf@frosties.localnet> <20120426232526.GA3102@burratino> <874ns6ox79.fsf@windlord.stanford.edu> <20120427064101.GA21681@burratino> <20140323163113.GA17401@yellowpig>
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. <ballombe@debian.org>
Imagine a large red swirl here.
commit f90e98e2005bd2f46a6792e6cb04a12b1d300c1f
Author: Bill Allombert <Bill.Allombert@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">
Reply to: