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">

Reply via email to