From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1QHjsb-0005QO-FC for garchives@archives.gentoo.org; Wed, 04 May 2011 21:45:09 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 6DC7A1C002; Wed, 4 May 2011 21:45:02 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 26FB31C002 for ; Wed, 4 May 2011 21:45:02 +0000 (UTC) Received: from flycatcher.gentoo.org (flycatcher.gentoo.org [81.93.255.6]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 670C61B4048 for ; Wed, 4 May 2011 21:45:01 +0000 (UTC) Received: by flycatcher.gentoo.org (Postfix, from userid 2296) id 08AD520054; Wed, 4 May 2011 21:45:00 +0000 (UTC) From: "Francisco Blas Izquierdo Riera (klondike)" To: gentoo-commits@lists.gentoo.org Reply-To: gentoo-dev@lists.gentoo.org, klondike@gentoo.org Subject: [gentoo-commits] gentoo commit in xml/htdocs/proj/en/hardened: etdyn.xml X-VCS-Repository: gentoo X-VCS-Files: etdyn.xml X-VCS-Directories: xml/htdocs/proj/en/hardened X-VCS-Committer: klondike X-VCS-Committer-Name: Francisco Blas Izquierdo Riera Content-Type: text/plain; charset=utf8 Message-Id: <20110504214500.08AD520054@flycatcher.gentoo.org> Date: Wed, 4 May 2011 21:45:00 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: X-Archives-Hash: 9afdb1259088d68ace2463056a335abd klondike 11/05/04 21:45:00 Modified: etdyn.xml Log: Solving QA issues Revision Changes Path 1.4 xml/htdocs/proj/en/hardened/etdyn.xml file : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/proj/en/har= dened/etdyn.xml?rev=3D1.4&view=3Dmarkup plain: http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/proj/en/har= dened/etdyn.xml?rev=3D1.4&content-type=3Dtext/plain diff : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/proj/en/har= dened/etdyn.xml?r1=3D1.3&r2=3D1.4 Index: etdyn.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /var/cvsroot/gentoo/xml/htdocs/proj/en/hardened/etdyn.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- etdyn.xml 31 Dec 2003 04:59:03 -0000 1.3 +++ etdyn.xml 4 May 2011 21:44:59 -0000 1.4 @@ -1,7 +1,7 @@ - +ETDYN guide The PaX Team @@ -23,10 +23,11 @@ =20 1.1 -5 Aug 2003 +2003-08-05 =20 Introduction +

One of the features of PaX is Address Space Layout Randomization (= ASLR) that allows the kernel to randomize the addresses of various areas in @@ -67,10 +68,12 @@ themselves in the future.

=20 +
=20 How to produce ET_DYN ELF executables +
=20

The following discussion assumes that the GNU toolchain (such as g= cc and @@ -114,8 +117,8 @@ care about gcrt1.o). It is no coincidence that crt1.o is not linked i= nto shared libraries as this object contains (among others) the low-level= entry point and startup code that invokes the C library startup code which = in - turn calls main().=20 - Initiating the building of ET_DYN executables on Gentoo does no= t require us to put -shared in our CFLAGS or LDFLAGS

+ turn calls main().

+ Initiating the building of ET_DYN executables on Gentoo does no= t require us to put -shared in our CFLAGS or LDFLAGS =20

Making crt1.o position independent is easy, we just have to make u= se of the GOT (in keeping with the tradition of the glibc naming convention for= the @@ -148,20 +151,22 @@ code) they can be compiled once and put into the same directory where the other systemwide crt* files are.

+
=20 ET_DYN ELF executables (The Gentoo Way) +
=20 -

On Gentoo this is accomplished by merging hardened-gcc: +

On Gentoo this is accomplished by merging hardened-gcc: =20

-# emerge hardened-gcc
+# emerge hardened-gcc
 
=20 -

hardened-gcc is an umbrella package for non-mainstream gcc = modifications - The hardened-gcc packages was initially created by Alexander G= abert=20 +

hardened-gcc is an umbrella package for non-mainstream gcc = modifications + The hardened-gcc packages was initially created by Alexander G= abert=20 for this special purpose we are serving here: rolling out the etdyn specs file and interp.o together with the position independent crt1S.o. But this package is not limited to that purpose. =20 @@ -184,21 +189,17 @@ one is chpax built as an ET_EXEC.

=20
-# file /sbin/chpax
+# file /sbin/chpax
 /sbin/chpax: ELF 32-bit LSB shared object, Intel 80386, version 1 \
 (GNU/Linux), stripped
 /sbin/chpax: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), f=
or \
 GNU/Linux 2.0.0, dynamically linked (uses shared libs), stripped
 
=20 - - - + =20 -To keep the bugs down for us we really dont want the -end user mucking with the specs -solar - -

We can further simplify the building of ET_DYN executables by modi= fying + + +

+
+ + =20 Credits
=20