aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'archs/amd64/text.xml')
-rw-r--r--archs/amd64/text.xml51
1 files changed, 26 insertions, 25 deletions
diff --git a/archs/amd64/text.xml b/archs/amd64/text.xml
index f227005..4f3b7da 100644
--- a/archs/amd64/text.xml
+++ b/archs/amd64/text.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<guide self="archs/amd64/">
<chapter>
-<title>Arch Specific Notes — AMD64/EM64T</title>
+<title>Arch specific notes — AMD64/EM64T</title>
<section>
-<title>Position Independent Code Issues</title>
+<title>Position Independent Code issues</title>
<body>
<p>
@@ -83,32 +83,33 @@ applied to shared objects.
<body>
<p>
-The current AMD64 processors are able to natively run 32bit code on a 64bit
+The current AMD64 processors are able to natively run 32-bit code on a 64-bit
kernel. Therefore, you can run programs compiled for x86 in an amd64 environment.
-However, 32bit applications need to be linked against 32bit libraries. Mixing
-them won't work. For this reason the libraries are sorted, 32bit libraries normally
-go to <c>/lib32</c> respectively <c>/usr/lib32</c>, the 64bit ones normally to <c>/lib64</c> or
-<c>/usr/lib64</c>. In a perfect world, you wouldn't have to read on. Unfortunately,
-that's not the case, and so it's a bit more complicated.
+However, 32-bit applications need to be linked against 32-bit libraries. Mixing
+them won't work. For this reason the libraries are sorted, 32-bit libraries
+normally go to <c>/lib32</c> respectively <c>/usr/lib32</c>, the 64-bit ones
+normally to <c>/lib64</c> or <c>/usr/lib64</c>. In a perfect world, you wouldn't
+have to read on. Unfortunately, that's not the case, and so it's a bit more
+complicated.
</p>
</body>
<subsection>
-<title>Multilib-Toolchain</title>
+<title>Multilib toolchain</title>
<subsubsection>
<title>GCC</title>
<body>
<p>
-To generate 32bit code, we need a multilib-capable GCC. On other architectures,
+To generate 32-bit code, we need a multilib-capable GCC. On other architectures,
this functionality is enabled with the USE flag <c>multilib</c>. This is also true
for amd64 with the <e>pre</e>-2005.0 profiles. From 2005.0 on, you have to choose
whether you want multilib support or not by selecting the profile. Choose
<c>2005.0/no-multilib</c> if you don't want it, all other profiles have the
<c>multilib</c> USE flag masked, you're forced to it. With these profiles, GCC will
produce x86-code whenever you add <c>-m32</c> to its command line. Adding <c>-m64</c>
-or omitting any bit-width option will default to producing 64bit code.
+or omitting any bit-width option will default to producing 64-bit code.
</p>
</body>
@@ -119,8 +120,8 @@ or omitting any bit-width option will default to producing 64bit code.
<body>
<p>
-If you've chosen a multilib profile, glibc will be built twice, once 64bit and
-once 32bit. This is because nearly every application links against glibc.
+If you've chosen a multilib profile, glibc will be built twice, once 64-bit and
+once 32-bit. This is because nearly every application links against glibc.
To understand how this is done in the ebuild, read
<uri link="::archs/amd64/#The ABI Variable"/>.
</p>
@@ -130,11 +131,11 @@ To understand how this is done in the ebuild, read
</subsection>
<subsection>
-<title>32bit compatibility</title>
+<title>32-bit compatibility</title>
<body>
<p>
-As you read above, 32bit applications must be linked against 32bit libraries.
+As you read above, 32-bit applications must be linked against 32-bit libraries.
For that, we've made the most common libraries as multilib (via <c>ABI</c>
variable and <c><uri link="::eclass-reference/multilib.eclass/"/></c>).
</p>
@@ -209,14 +210,14 @@ the <c>ABI</c> variable.
</subsection>
<subsection>
-<title>The <c>multilib-strict</c> Feature</title>
+<title>The <c>multilib-strict</c> feature</title>
<body>
<p>
Many Makefiles assume that their libraries should go to <c>/usr/lib</c>, or
<c>$(prefix)/lib</c>. This assumption can cause a serious mess if <c>/usr/lib</c>
isn't a symlink to <c>/usr/lib64</c>. To find the bad packages, we have a Portage feature
-called <b>multilib-strict</b>. It will prevent emerge from putting 64bit libraries
+called <b>multilib-strict</b>. It will prevent emerge from putting 64-bit libraries
into anything other than <c>(/usr)/lib64</c>.
</p>
@@ -247,13 +248,13 @@ modifications!
</subsection>
<subsection>
-<title>Headers and Multilib</title>
+<title>Headers and multilib</title>
<body>
<p>
Most C/C++ programs need standard header files like <c>types.h</c>. Some of them
depend on architecture specific facts, e.g. <c>types.h</c> on the length
-of machine words. To ensure that we can compile both 32bit and 64bit
+of machine words. To ensure that we can compile both 32-bit and 64-bit
applications and libraries, we treat <c>/usr/include/asm</c> a bit special.
</p>
@@ -285,16 +286,16 @@ section.
</subsection>
<subsection>
-<title>The ABI Variable</title>
+<title>The ABI variable</title>
<body>
<p>
Whenever Portage builds something on amd64, it has to decide whether it should
-be 32bit or 64bit. As stated in <uri link="::archs/amd64/#Headers and Multilib"/>
+be 32-bit or 64-bit. As stated in <uri link="::archs/amd64/#Headers and Multilib"/>
the <c>__i386__</c> or <c>__x86_64__</c> respectively, is needed in <c>CDEFINE</c>.
Also, gcc has to know what code it should produce, therefore <c>-m32</c> or <c>-m64</c>
must be appended to CFLAGS. This is done via <c>profile.bashrc</c>. All you need to do
-if you want to build a package 32bit is to set <c>ABI=x86</c>.
+if you want to build a package 32-bit is to set <c>ABI=x86</c>.
</p>
<p>
@@ -323,10 +324,10 @@ LIBDIR_x86="lib32"
</section>
<section>
-<title>Porting Notes</title>
+<title>Porting notes</title>
<subsection>
-<title>Machine Word sizes</title>
+<title>Machine word sizes</title>
<body>
<p>
@@ -473,7 +474,7 @@ segmentation faults or strange behaviour. GCC 4.0 refuses to compile such code.
</section>
<section>
-<title>Other Resources</title>
+<title>Other resources</title>
<body>
<ul>