This patchset enables NPTL on all linux-user targets; this is a change for i386, m68k, mipsn32, mipsn32el, mips64, mips64el, or32, ppc64, ppc46abi32, sparc, sparc32plus, sparc64, unicore32 and x86_64 (but not plain ppc or plain mips).
Testing: I've tested with a chroot that or32 and sparc32plus work; in both cases there were basic bugs in linux-user support (stat didn't work on or32; pipe busted on sparc; see separate patches) from which I conclude that these were simply untested targets, so the bar for "make things at least not worse" is an extremely low one. I cannot find any m68k binaries which don't die with an illegal instruction very early on (probably because we emulate coldfire and most m68k binaries assume 680x0), so I am treating that target as basically also broken. I've also tested PPC and PPC64 chroots, and of course the linux-user-0.3 testset from the wiki. I tested x86-64 and i386 with a chroot on an ARM host: they generally work though they still have missing bits (for instance x86-64 has no implementation of setup_frame etc for signal handling!). Changes v2->v3: * fixed dumb typos in m68k pointed out by Laurent * included Alex's patch for i386 TLS setting * added a patch for x86-64 (turns out to be easy) * new patch which fixes bugs in clone() argument order for cris, x86-64, m68k, openrisc, unicore32 (noticed for x86-64 since otherwise glibc asserts in fork; others fixed based on examination of kernel source code) * new patch adding a missing 'break' in i386's get_thread_area (noticed in review of the m68k patch in that area) * new patch which removes all the now-redundant configure machinery and ifdefs Alexander Graf (1): linux-user: Add i386 TLS setter Peter Maydell (12): configure: Flip default of target_nptl configure: Don't say target_nptl="no" if there is no linux-user target configure: Enable threading on all ppc and mips linux-user targets configure: Enable threading for unicore32-linux-user linux-user: Move includes of target-specific headers to end of qemu.h linux-user: Enable NPTL for OpenRISC linux-user: Enable NPTL for SPARC targets linux-user: Enable NPTL for m68k linux-user: Add missing 'break' in i386 get_thread_area syscall linux-user: Clean up handling of clone() argument order linux-user: Enable NPTL for x86-64 configure: Make NPTL non-optional configure | 34 ++-------------- include/exec/gdbstub.h | 2 +- linux-user/arm/syscall.h | 2 + linux-user/cris/syscall.h | 2 + linux-user/i386/syscall.h | 2 + linux-user/i386/target_cpu.h | 19 ++++++++- linux-user/m68k/target_cpu.h | 6 ++- linux-user/main.c | 43 -------------------- linux-user/microblaze/syscall.h | 2 + linux-user/mips/syscall.h | 2 + linux-user/mips64/syscall.h | 2 + linux-user/mmap.c | 11 ----- linux-user/openrisc/target_cpu.h | 9 ++++- linux-user/ppc/syscall.h | 2 + linux-user/qemu.h | 20 ++++------ linux-user/s390x/syscall.h | 2 + linux-user/sparc/syscall.h | 7 ++++ linux-user/sparc/target_cpu.h | 16 ++++++-- linux-user/sparc64/syscall.h | 7 ++++ linux-user/syscall.c | 82 +++++++++++++------------------------- 20 files changed, 110 insertions(+), 162 deletions(-) -- 1.7.9.5