diff options
author | 2007-02-14 15:24:44 +0000 | |
---|---|---|
committer | 2007-02-14 15:24:44 +0000 | |
commit | 8e169bb8e1dc1da172baaecdba98141d0454f225 (patch) | |
tree | f3b34c8c42ce8a08481c757b705a5e8212685641 | |
parent | Improve dependency management; build new crtbeginTS.o also when USE=-hardened... (diff) | |
download | kevquinn-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.README | 18 |
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 (?) |