1 |
klondike 11/05/04 21:45:00 |
2 |
|
3 |
Modified: etdyn.xml |
4 |
Log: |
5 |
Solving QA issues |
6 |
|
7 |
Revision Changes Path |
8 |
1.4 xml/htdocs/proj/en/hardened/etdyn.xml |
9 |
|
10 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/proj/en/hardened/etdyn.xml?rev=1.4&view=markup |
11 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/proj/en/hardened/etdyn.xml?rev=1.4&content-type=text/plain |
12 |
diff : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/proj/en/hardened/etdyn.xml?r1=1.3&r2=1.4 |
13 |
|
14 |
Index: etdyn.xml |
15 |
=================================================================== |
16 |
RCS file: /var/cvsroot/gentoo/xml/htdocs/proj/en/hardened/etdyn.xml,v |
17 |
retrieving revision 1.3 |
18 |
retrieving revision 1.4 |
19 |
diff -u -r1.3 -r1.4 |
20 |
--- etdyn.xml 31 Dec 2003 04:59:03 -0000 1.3 |
21 |
+++ etdyn.xml 4 May 2011 21:44:59 -0000 1.4 |
22 |
@@ -1,7 +1,7 @@ |
23 |
<?xml version='1.0' encoding="utf-8"?> |
24 |
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
25 |
<guide link="/proj/en/hardened/etdyn.xml"> |
26 |
- |
27 |
+<title>ETDYN guide</title> |
28 |
<author title="Author"> |
29 |
<mail link="pageexec@××××××××.hu">The PaX Team</mail> |
30 |
</author> |
31 |
@@ -23,10 +23,11 @@ |
32 |
</abstract> |
33 |
|
34 |
<version>1.1</version> |
35 |
-<date>5 Aug 2003</date> |
36 |
+<date>2003-08-05</date> |
37 |
|
38 |
<chapter> |
39 |
<title>Introduction</title> |
40 |
+ <section> |
41 |
<body> |
42 |
<p>One of the features of PaX is Address Space Layout Randomization (ASLR) |
43 |
that allows the kernel to randomize the addresses of various areas in |
44 |
@@ -67,10 +68,12 @@ |
45 |
themselves in the future.</p> |
46 |
|
47 |
</body> |
48 |
+ </section> |
49 |
</chapter> |
50 |
|
51 |
<chapter> |
52 |
<title>How to produce ET_DYN ELF executables</title> |
53 |
+ <section> |
54 |
<body> |
55 |
|
56 |
<p>The following discussion assumes that the GNU toolchain (such as gcc and |
57 |
@@ -114,8 +117,8 @@ |
58 |
care about gcrt1.o). It is no coincidence that crt1.o is not linked into |
59 |
shared libraries as this object contains (among others) the low-level entry |
60 |
point and startup code that invokes the C library startup code which in |
61 |
- turn calls main(). |
62 |
- <warn>Initiating the building of ET_DYN executables on Gentoo does not require us to put -shared in our CFLAGS or LDFLAGS</warn></p> |
63 |
+ turn calls main(). </p> |
64 |
+ <warn>Initiating the building of ET_DYN executables on Gentoo does not require us to put -shared in our CFLAGS or LDFLAGS</warn> |
65 |
|
66 |
<p>Making crt1.o position independent is easy, we just have to make use of the |
67 |
GOT (in keeping with the tradition of the glibc naming convention for the |
68 |
@@ -148,20 +151,22 @@ |
69 |
code) they can be compiled once and put into the same directory where |
70 |
the other systemwide crt* files are.</p> |
71 |
</body> |
72 |
+ </section> |
73 |
</chapter> |
74 |
|
75 |
<chapter> |
76 |
<title>ET_DYN ELF executables (The Gentoo Way)</title> |
77 |
+ <section> |
78 |
<body> |
79 |
|
80 |
- <p>On Gentoo this is accomplished by merging <i>hardened-gcc</i>: </p> |
81 |
+ <p>On Gentoo this is accomplished by merging <c>hardened-gcc</c>: </p> |
82 |
|
83 |
<pre caption = "Emerging hardened-gcc"> |
84 |
-<c># emerge hardened-gcc</c> |
85 |
+# <i>emerge hardened-gcc</i> |
86 |
</pre> |
87 |
|
88 |
- <p><i>hardened-gcc</i> is an umbrella package for non-mainstream gcc modifications |
89 |
- The <i>hardened-gcc</i> packages was initially created by Alexander Gabert |
90 |
+ <p><c>hardened-gcc</c> is an umbrella package for non-mainstream gcc modifications |
91 |
+ The <c>hardened-gcc</c> packages was initially created by Alexander Gabert |
92 |
for this special purpose we are serving here: rolling out the etdyn |
93 |
specs file and interp.o together with the position independent |
94 |
crt1S.o. But this package is not limited to that purpose. |
95 |
@@ -184,21 +189,17 @@ |
96 |
one is chpax built as an ET_EXEC.</p> |
97 |
|
98 |
<pre caption = "Example files"> |
99 |
-<c># file /sbin/chpax</c> |
100 |
+# <i>file /sbin/chpax</i> |
101 |
/sbin/chpax: ELF 32-bit LSB shared object, Intel 80386, version 1 \ |
102 |
(GNU/Linux), stripped |
103 |
/sbin/chpax: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for \ |
104 |
GNU/Linux 2.0.0, dynamically linked (uses shared libs), stripped |
105 |
</pre> |
106 |
|
107 |
- </body> |
108 |
-</chapter> |
109 |
- |
110 |
+<!--To keep the bugs down for us we really dont want the |
111 |
+end user mucking with the specs -solar --> |
112 |
|
113 |
-<comment>To keep the bugs down for us we really dont want the |
114 |
-end user mucking with the specs -solar </comment> |
115 |
-<comment> |
116 |
- <p>We can further simplify the building of ET_DYN executables by modifying |
117 |
+<!-- We can further simplify the building of ET_DYN executables by modifying |
118 |
a few sections of the default gcc specs file as demonstrated in the |
119 |
specs.2.95.3 and specs.3.2.3 files (for the respective gcc versions). |
120 |
To use the new specs file we can either replace the default one or pass |
121 |
@@ -206,12 +207,17 @@ |
122 |
could further trim down the new specs file and keep only the sections |
123 |
that we changed: *cpp, *cc1, *endfile, *link and *startfile). From now |
124 |
on invoking gcc as 'gcc -et_dyn' will produce an ET_DYN executable (the |
125 |
- same goes for g++).</p> |
126 |
+ same goes for g++). |
127 |
|
128 |
- <p>Readers interested in rebuilding entire distributions are encouraged to |
129 |
+ Readers interested in rebuilding entire distributions are encouraged to |
130 |
take a look at the Adamantix (http://www.adamantix.org) and Hardened |
131 |
- Gentoo projects (http://www.gentoo.org/proj/en/hardened/).</p> |
132 |
-</comment> |
133 |
+ Gentoo projects (http://www.gentoo.org/proj/en/hardened/). |
134 |
+--> |
135 |
+ </body> |
136 |
+ </section> |
137 |
+</chapter> |
138 |
+ |
139 |
+ |
140 |
<chapter> |
141 |
<title>Credits</title> |
142 |
<section> |