==============
New features
------------
+ Processes under PRoot now appear with their real names, that is,
they are not renamed "ld-linux.so" or "prooted-..." anymore:
before:
$ proot-v4.0.3 ps
PID TTY TIME CMD
7885 pts/11 00:00:00 bash
8131 pts/11 00:00:00 proot-v4.0.3
8132 pts/11 00:00:00 ld-2.17.so
$ proot-v5.0.0 ps
PID TTY TIME CMD
7885 pts/11 00:00:00 bash
7916 pts/11 00:00:00 proot-v5.0.0
7917 pts/11 00:00:00 prooted-7916-Jb
now:
$ proot-v5.1.0 ps
PID TTY TIME CMD
7885 pts/11 00:00:00 bash
8585 pts/11 00:00:00 proot-v5.1.0
8586 pts/11 00:00:00 ps
Fixes
-----
+ It is now possible to use GDB against multi-threaded programs under
PRoot x86_64 and x86.
+ It is possible to execute x86_64 programs from x86 programs again.
+ It is possible to use x86 ptrace-based programs (strace, gdb, ...)
under PRoot x86_64 again.
+ The loader is now built with the "build-id" linker option explicitly
disabled. This special section might interfere with loaded
programs.
+ The loader can now load relocatable objects that have a predefined
base address.
Acknowledgements
----------------
Thanks to Erwan Gouriou, Sébastien Gandon, Christian milkylainen,
Henrik Wallin, and Frank Teo for their bug reports and tests.
Thanks to Jérôme Audu, Yann Droneaud, and Christophe Monat for their
precious help.
Validation
----------
==================== ================= ============== ================= =========
testsuite host distro guest distro configurations comments
==================== ================= ============== ================= =========
proot-v5.1 Slack-14.1/x86_64 none N/A a
proot-v5.1/memcheck Slack-14.1/x86_64 none N/A a
proot-v5.1/asan Slack-14.1/x86_64 none N/A a
proot-v5.1/talleak Slack-14.1/x86_64 none N/A a
proot-v5.1 OBS */x86_64 none N/A b
proot-v5.1 OBS */x86 none N/A c
proot-v5.1 STLinux-2.4/arm none N/A d
libuv-0.10.27 Slack-14.1/x86_64 same as host none a
libuv-0.10.27 Slack-14.1/x86_64 same as host kompat, fake_id0 l
libuv-0.10.27 Slack-14.1/x86_64 Slack-14.1/x86 none a
libuv-0.10.27 Slack-14.1/x86_64 Slack-14.1/x86 kompat, fake_id0 l
ltp-syscall-20130904 Slack-14.1/x86_64 same as host none f
ltp-syscall-20130904 Slack-14.1/x86_64 same as host kompat, fake_id0 n
ltp-syscall-20130904 Slack-14.1/x86_64 Slack-14.1/x86 none j
ltp-syscall-20130904 Slack-14.1/x86_64 Slack-14.1/x86 kompat, fake_id0 t
ltp-opt-20130904 Slack-14.1/x86_64 same as host none g
ltp-opt-20130904 Slack-14.1/x86_64 same as host kompat, fake_id0 m
ltp-opt-20130904 Slack-14.1/x86_64 Slack-14.1/x86 none i
ltp-opt-20130904 Slack-14.1/x86_64 Slack-14.1/x86 kompat, fake_id0 u
perl-5.18.1 Slack-14.1/x86_64 same as host none a
perl-5.18.1 Slack-14.1/x86_64 same as host kompat, fake_id0 k
perl-5.18.1 Slack-14.1/x86_64 Slack-14.1/x86 none a
perl-5.18.1 Slack-14.1/x86_64 Slack-14.1/x86 kompat, fake_id0 k
gdb-7.6.1 Slack-14.1/x86_64 same as host none r, o
gdb-7.6.1 Slack-14.1/x86_64 same as host kompat, fake_id0 N/A
gdb-7.6.1 Slack-14.1/x86_64 Slack-14.1/x86 none r, p
gdb-7.6.1 Slack-14.1/x86_64 Slack-14.1/x86 kompat, fake_id0 N/A
coreutils-8.21 Slack-14.1/x86_64 same as host none e
coreutils-8.21 Slack-14.1/x86_64 same as host kompat, fake_id0 q
coreutils-8.21 Slack-14.1/x86_64 Slack-14.1/x86 none h
coreutils-8.21 Slack-14.1/x86_64 Slack-14.1/x86 kompat, fake_id0 s
proot-v3.2.2 Slack-14.1/x86_64 same as host none a
proot-v3.2.2 Slack-14.1/x86_64 same as host fake_id0 N/A
proot-v3.2.2 Slack-14.1/x86_64 Slack-14.1/x86 none r, a
proot-v3.2.2 Slack-14.1/x86_64 Slack-14.1/x86 fake_id0 N/A
perl-5.18.1 Slack-14.1/x86_64 Slack-14.1/ARM qemu-2.2.0 w
coreutils-8.21 Slack-14.1/x86_64 Slack-14.1/ARM qemu-2.2.0 v
performance Slack-14.1/x86_64 none none XXX
Coverity Scan Travis-CI N/A N/A a
Clang 3.3 Slack-14.1/x86_64 N/A N/A a
==================== ================= ============== ================= =========
a: is OK or nothing special to report.
b: test-ptrace01 fails sometimes on x86_64.
c: fails on some AMD CPUs. No explanations yet.
d: ptrace emulation doesn't work.
e: failures = rm/deep-2, misc/cut-huge-to-eol-range, misc/csplit-heap,
du/long-from-unreadable, install/basic-1, mkdir/p-3
f: failures = brk01, creat07, execve04, mremap03, msync03, pwrite03,
pwrite03_64, rmdir02
g: failures = sigaction_4-40, getoverrun_2-3
h: failures = rm/deep-2, du/long-from-unreadable, install/basic-1,
mkdir/p-3
i: failures = mmap_31-1, timer_getoverrun_2-3
j: failures = bdflush01, creat07, execve04, ftruncate04,
ftruncate04_64, modify_ldt01, mremap03, msync03,
pwrite03, pwrite03_64, rmdir02, socketcall01
k: failures = File-Path/Path, HTTP-Tiny/002_croakage,
HTTP-Tiny/003_agent, Net-Ping/110_icmp_inst,
Net-Ping/500_ping_icmp, Net-Ping/520_icmp_ttl.t
l: failures = signal_multiple_loops, fs_chown
m: failures = fork_1-1, sem_unlink_3-1, timer_getoverrun_2-3
n: failures = 153/1024
o: failures = break-interp, break, checkpoint.exp, foll-exec,
foll-vfork.exp
p: failures = break-interp, call-sc, callfuncs, checkpoint,
find-unmapped, finish, float, foll-exec, foll-vfork,
hbreak2, interrupt
q: failures = chgrp/basic, chgrp/deref, chgrp/recurse,
misc/cut-huge-to-eol-range, misc/csplit-heap,
misc/id-setgid, misc/xattr, du/long-from-unreadable,
ls/file-type, ls/no-cap, ls/stat-free-color,
ls/stat-free-symlinks, mv/atomic, mv/atomic2,
chown/basic, cp/special-bits, cp/preserve-gid,
install/install-C-root, ls/capability, ls/nameless-uid,
misc/chroot-credentials, mv/sticky-to-xpart,
rm/fail-2eperm, rm/no-give-up
r: have to be run in -j1
s: failures = chgrp/basic, chgrp/deref, chgrp/recurse, misc/id-setgid,
misc/xattr, du/long-from-unreadable, ls/file-type,
ls/no-cap, ls/stat-free-color, ls/stat-free-symlinks,
mv/atomic, mv/atomic2, chown/basic, cp/preserve-gid,
cp/special-bits, install/install-C-root, ls/capability,
ls/nameless-uid, misc/chroot-credentials,
mv/sticky-to-xpart, rm/fail-2eperm, rm/no-give-up,
t: failures = 172/1024
u: failures = fork_1-1, mmap_31-1, sem_unlink_3-1, timer_getoverrun_2-3
v: failures = rm/deep-2, misc/env, misc/printenv, split/fail,
dd/skip-seek, dd/skip-seek-past-file,
du/long-from-unreadable, install/basic, mkdir/p-3
w: failures = HTTP-Tiny/002_croakage, HTTP-Tiny/003_agent, op/magic