summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin F. Quinn <kevquinn@gentoo.org>2007-02-14 15:24:44 +0000
committerKevin F. Quinn <kevquinn@gentoo.org>2007-02-14 15:24:44 +0000
commit8e169bb8e1dc1da172baaecdba98141d0454f225 (patch)
treef3b34c8c42ce8a08481c757b705a5e8212685641
parentImprove dependency management; build new crtbeginTS.o also when USE=-hardened... (diff)
downloadkevquinn-8e169bb8e1dc1da172baaecdba98141d0454f225.tar.gz
kevquinn-8e169bb8e1dc1da172baaecdba98141d0454f225.tar.bz2
kevquinn-8e169bb8e1dc1da172baaecdba98141d0454f225.zip
Note UDEREF as reason for mutex failures (phew), clean up upgrade path
svn path=/; revision=178
-rw-r--r--hardened/toolchain/branches/pieworld/pieworld.README18
1 files changed, 11 insertions, 7 deletions
diff --git a/hardened/toolchain/branches/pieworld/pieworld.README b/hardened/toolchain/branches/pieworld/pieworld.README
index 99cd2e2..8547bde 100644
--- a/hardened/toolchain/branches/pieworld/pieworld.README
+++ b/hardened/toolchain/branches/pieworld/pieworld.README
@@ -29,15 +29,15 @@ binaries containing PIE code, although the executable has a fixed location.
Upgrade path
------------
-From hardened gcc-3/glibc-2.3:
1) Switch to vanilla compiler (gcc-config)
2) emerge --oneshot =sys-devel/binutils-2.17
-3) USE="-hardened" emerge --oneshot =sys-libs/glibc-2.5
-4) USE="-hardened" emerge --oneshot =sys-devel/gcc-4.1.1-r3
-5) switch to hardened compiler
-6) emerge --oneshot =sys-libs/glibc-2.5
-7) emerge --oneshot =sys-devel/gcc-4.1.1-r3
-8) emerge -e world :)
+3) Switch to 2.17 binutils (binutils-config)
+4) USE="-hardened" emerge --oneshot =sys-libs/glibc-2.5
+5) USE="-hardened" emerge --oneshot =sys-devel/gcc-4.1.1-r3
+6) switch to hardened compiler
+7) emerge --oneshot =sys-libs/glibc-2.5
+8) emerge --oneshot =sys-devel/gcc-4.1.1-r3
+9) emerge -e world :)
There maybe quicker/shorter ways - but the above should always work. Care has to be taken
because the specs handling has changed a little from gcc-3, and may cause odd breakages
@@ -98,6 +98,7 @@ Investigations
So looks like it's all ok, both in gcc and glibc.
+
2) glibc-2.5 failures (sandbox always disabled):
For reference, on vanilla x86 the following fail (both in and out of a chroot):
@@ -155,6 +156,7 @@ nptl/tst-mutexpi4 X-- -.. .-- .-. .-. (? hardened x86-only)
hmm - fails if child gets PTHREAD_BARRIER_SERIAL_THREAD from the barrier; inserting a sleep()
to encourage a different barrier sequence demonstrates this.
note it must be something to do with the inherited priority stuff; tst-mutex4 passes...
+ - missing UDEREF handling in futex.h
nptl/tst-mutexpi5 X-- -.. .-- .-. .-. (? hardened x86-only)
nptl/tst-mutexpi5a X-- -.. .-- .-. .-. (? hardened x86-only)
nptl/tst-mutexpi6 X-- -.. .-- .-. .-. (? hardened x86-only)
@@ -234,6 +236,8 @@ Things to work out:
Investigation ongoing...
+ Turns out it was PAX_UDEREF - which I had failed to switch off even in my 'non-hardened' kernels :/
+
2) Why x86 passes elf/tst-tls{1,2}-static when all other arches fail it
3) What's different about x86_64 that it fails a whole bunch that are ok for other arches
4) Failures marked (?)