aboutsummaryrefslogtreecommitdiff
path: root/archs
diff options
context:
space:
mode:
authorMark Loeser <halcy0n@gentoo.org>2006-05-01 18:37:00 +0000
committerMark Loeser <halcy0n@gentoo.org>2006-05-01 18:37:00 +0000
commit7b05fe565b2f4ae0bcf699423c053c0c1c51c34f (patch)
treeff7faeb82da7abfde7e25c4c148be7240225c2a5 /archs
parentMore goodies converted, hosted projects, and half of the archs (diff)
downloaddevmanual-7b05fe565b2f4ae0bcf699423c053c0c1c51c34f.tar.gz
devmanual-7b05fe565b2f4ae0bcf699423c053c0c1c51c34f.tar.bz2
devmanual-7b05fe565b2f4ae0bcf699423c053c0c1c51c34f.zip
Add the rest of the arch pages
git-svn-id: svn+ssh://svn.gentoo.org/var/svnroot/devmanual/trunk@36 176d3534-300d-0410-8db8-84e73ed771c3
Diffstat (limited to 'archs')
-rw-r--r--archs/mips/text.xml136
-rw-r--r--archs/sparc/text.xml138
-rw-r--r--archs/text.xml4
-rw-r--r--archs/x86/text.xml43
4 files changed, 319 insertions, 2 deletions
diff --git a/archs/mips/text.xml b/archs/mips/text.xml
new file mode 100644
index 0000000..a5a594e
--- /dev/null
+++ b/archs/mips/text.xml
@@ -0,0 +1,136 @@
+<?xml version="1.0"?>
+<guide self="archs/mips/">
+<chapter>
+<title>Arch Specific Notes -- MIPS</title>
+<body>
+
+<p>
+The MIPS port uses the <c>mips</c> keyword. It focuses upon commonly available
+hardware <d/> mainly SGI and Cobalt systems <d/> although various embedded and
+special purpose boards are also supported.
+</p>
+
+<p>
+The <c>mips</c> keyword covers a huge range of architectures, CPUs and hardware,
+from tiny embedded devices up to server class kit with many tens of CPUs.
+</p>
+
+<note>
+Terminology:
+ABI stands for "Application Binary Interface". It refers to issues like
+calling conventions (which registers are used for passing parameters when
+calling functions) and the size of data types. ISA stands for "Instruction
+Set Architecture", and refers to the instructions available and the number
+and types of registers for a given CPU.
+</note>
+
+<section>
+<title>MIPS ABIs</title>
+<body>
+
+<p>
+The <c>o32</c> ABI was a wonderful invention by SGI that was good at the time, but
+later turned out to be a little bit short-sighted and inefficient. The <c>n32</c>
+ABI corrects that problem by pretending to be 32 bit, whilst in reality being 64
+bit. <c>n64</c> is another 64 bit ABI, this time not pretending to be 32 bit, which
+is therefore large, fat and yet very powerful.
+</p>
+
+<p>
+All of these ABIs can be both big and little endian, since MIPS CPUs come in
+both flavours, although most hardware does not support both options.
+</p>
+
+<p>
+All of these ABIs are popular amongst various applications domains. None of them
+actually work correctly.
+</p>
+
+</body>
+</section>
+
+<section>
+<title>MIPS ISAs</title>
+<body>
+
+<p>
+The most commonly seen MIPS ISAs are mips2, mips3, mips4, mips32 and mips64. If
+you encounter a situation in which you need to know about the differences
+between these, talk to the MIPS team.
+</p>
+
+</body>
+</section>
+
+<section>
+<title>Not Dropping <c>CFLAGS</c> on MIPS</title>
+<body>
+
+<p>
+Because <c>CFLAGS</c> are sometimes used to specify ISA and ABI information, it is
+vital that packages honour this setting. See
+<uri link="::general-concepts/user-environment/#Not Filtering Variables"/>.
+</p>
+
+</body>
+</section>
+
+<section>
+<title>Additional MIPS Keywording Requirements</title>
+<body>
+
+<note>
+This section is in addition to the guidelines in <uri link="::keywording/" /> It
+discusses <e>additional</e> requirements for the MIPS architectures.
+</note>
+
+<p>
+For a package to have the <c>~mips</c> keyword added, the following additional
+items must generally hold:
+</p>
+
+<ul>
+ <li>
+ The package should work on both big and little endian systems, on both pure
+ 32 bit and pure 64 bit systems and on systems with differing kernel and
+ userland ABIs.
+ </li>
+</ul>
+
+<p>
+It is generally expected that anyone who does keywording for MIPS should be on
+the <c>mips@</c> alias.
+</p>
+
+</body>
+</section>
+
+<section>
+<title>Contacting the MIPS Team</title>
+<body>
+
+<p>
+The MIPS team can be contacted:
+</p>
+
+<ul>
+ <li>
+ Via Bugzilla bugs assigned to <c>mips@</c>
+ </li>
+ <li>
+ Via email to the <c>mips@</c> email alias
+ </li>
+ <li>
+ Via email to the <c>gentoo-mips</c> mailing list
+ </li>
+ <li>
+ Via the <c>#gentoo-mips</c> IRC channel on Freenode
+ </li>
+</ul>
+
+</body>
+</section>
+
+</body>
+</chapter>
+</guide>
diff --git a/archs/sparc/text.xml b/archs/sparc/text.xml
new file mode 100644
index 0000000..669c930
--- /dev/null
+++ b/archs/sparc/text.xml
@@ -0,0 +1,138 @@
+<?xml version="1.0"?>
+<guide self="archs/sparc/">
+<chapter>
+<title>Arch Specific Notes -- SPARC</title>
+<body>
+
+<p>
+The SPARC port uses the <c>sparc</c> keyword. It focusses mainly upon <c>sun4u</c>
+hardware (Sun UltraSparc systems with <c>v9</c> CPUs), although <c>sun4m</c> (Sun 32
+bit hardware with <c>v8</c> and clones) is also sort-of supported.
+</p>
+
+<section>
+<title>SPARC Kernel and Userland ABIs</title>
+<body>
+
+<p>
+<c>v9</c> systems use a pure 64 bit kernel and a pure 32 bit userland. This can
+cause portability problems when working with low level software if the kernel
+does not provide working 32 bit compatibility interfaces.
+</p>
+
+<p>
+<c>v8</c> systems use a pure 32 bit kernel and a pure 32 bit userland.
+</p>
+
+<p>
+All supported SPARC systems are big endian.
+</p>
+
+</body>
+</section>
+
+<section>
+<title>Additional SPARC Keywording Requirements</title>
+<body>
+
+<note>
+This section is in addition to the guidelines in
+<uri link="::keywording#Keywording on Upgrades"/>. It discusses <e>additional</e>
+requirements for the SPARC architecture.
+</note>
+
+<p>
+For a package to have the <c>~sparc</c> keyword added, the following additional
+items must generally hold:
+</p>
+
+<ul>
+ <li>
+ The package must have been tested by an arch team member (or someone with
+ permission from the arch team) <e>at least</e> on a <c>v9</c> system. Testing on
+ <c>v8</c> is encouraged but not required.
+ </li>
+</ul>
+
+<p>
+It is generally expected that anyone who does keywording for SPARC should be on
+the <c>sparc@</c> alias.
+</p>
+
+</body>
+</section>
+
+<section>
+<title>SPARC Instruction Set and Performance Notes</title>
+<body>
+
+<p>
+There are three basic SPARC instruction set standards.
+</p>
+
+<ul>
+ <li>
+ <c>v7</c> is the original instruction set used in very old hardware. Gentoo does
+ not ship <c>v7</c> capable stages, however a sufficiently crazy person could in
+ theory run Gentoo on a <c>v7</c> machine.
+ </li>
+ <li>
+ <c>v8</c> is an extension of <c>v7</c> with added support for hardware integer
+ multiplication and division. Gentoo sparc32 (<c>sun4m</c>) stages are <c>v8</c>.
+ </li>
+ <li>
+ <c>v9</c> adds in 64 bit support and a large number of performance-enhancing
+ features. Gentoo sparc64 (<c>sun4u</c>) stages are <c>v9</c>.
+ </li>
+</ul>
+
+<p>
+In addition, individual CPU implementations have slight differences -- for
+example, HyperSparc CPUs have relaxed requirements when it comes to scheduling
+certain instructions. These are relatively minor differences.
+</p>
+
+<p>
+If <c>gcc</c> is invoked without any <c>-mcpu</c> parameter, it will generate <c>v7</c>
+code. Depending upon the application, this can be anywhere up to five times
+slower than <c>v9</c> code when running on an UltraSparc -- cryptographic and
+graphics applications which make heavy use of integer multiplication and
+division are especially badly hit. For this reason, the comments in
+<uri link="::general-concepts/user-environment#Not Filtering Variables"/>
+are especially important on SPARC.
+</p>
+
+</body>
+</section>
+
+<section>
+<title>Contacting the SPARC Team</title>
+<body>
+
+<p>
+The SPARC team can be contacted:
+</p>
+
+<ul>
+ <li>
+ Via Bugzilla bugs assigned to <c>sparc@</c>
+ </li>
+ <li>
+ Via email to the <c>sparc@</c> email alias
+ </li>
+ <li>
+ Via email to the <c>gentoo-sparc</c> mailing list
+ </li>
+ <li>
+ Via the <c>#gentoo-sparc</c> IRC channel on Freenode
+ </li>
+</ul>
+
+</body>
+</section>
+
+</body>
+</chapter>
+</guide>
+
+
diff --git a/archs/text.xml b/archs/text.xml
index e598a0e..a3a5d9e 100644
--- a/archs/text.xml
+++ b/archs/text.xml
@@ -29,8 +29,8 @@ happens to work best in any situation.
<include href="alpha/"/>
<include href="amd64/"/>
-<!--<include href="mips/"/>
+<include href="mips/"/>
<include href="sparc/"/>
-<include href="x86/"/>-->
+<include href="x86/"/>
</guide>
diff --git a/archs/x86/text.xml b/archs/x86/text.xml
new file mode 100644
index 0000000..d45c8a5
--- /dev/null
+++ b/archs/x86/text.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<guide self="archs/x86/">
+<chapter>
+<title>Arch Specific Notes -- x86</title>
+<body>
+
+<p>
+Originally it was assumed that all developers had access to x86 hardware,
+so there was no arch team created for x86. This is no longer the case, and
+x86 is to be treated like any other arch with regards to moving a package to
+stable. If you want your application to be moved to stable on x86, please
+contact the x86 team. If your package requires specific hardware, or a specific
+non-trivial setup to test, then we will probably allow you to mark it stable,
+unless someone on the team can test it. If you want permission to stablize a lot
+of packages, we will probably ask you to join the team.
+</p>
+
+<section>
+<title>Contacting the x86 Team</title>
+<body>
+
+<p>
+The x86 team can be contacted:
+</p>
+
+<ul>
+ <li>
+ Via Bugzilla bugs assigned to <c>x86@</c>
+ </li>
+ <li>
+ Via email to the <c>x86@</c> email alias
+ </li>
+ <li>
+ Via the <c>#gentoo-x86</c> IRC channel on Freenode
+ </li>
+</ul>
+
+</body>
+</section>
+
+</body>
+</chapter>
+</guide>