[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#664257: multiarch tuples are not documented/defined



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: