11.5.1.1. C++ static and pthreads
g++
and pthreads also causes issues:
As a consequence, the following just hangs as of LKMC ca0403849e03844a328029d70c08556155dc1cd0 + 1 the example userland/cpp/atomic/std_atomic.cpp:
./run --userland userland/cpp/atomic/std_atomic.cpp --static
And before that, it used to fail with other randomly different errors, e.g.:
qemu-x86_64: /path/to/linux-kernel-module-cheat/submodules/qemu/accel/tcg/cpu-exec.c:700: cpu_exec: Assertion `!have_mmap_lock()' failed. qemu-x86_64: /path/to/linux-kernel-module-cheat/submodules/qemu/accel/tcg/cpu-exec.c:700: cpu_exec: Assertion `!have_mmap_lock()' failed.
And a native Ubuntu 18.04 AMD64 run with static compilation segfaults.
As of LKMC f5d4998ff51a548ed3f5153aacb0411d22022058 the aarch64 error:
./run --arch aarch64 --userland userland/cpp/atomic/fail.cpp --static
is:
terminate called after throwing an instance of 'std::system_error' what(): Unknown error 16781344 qemu: uncaught target signal 6 (Aborted) - core dumped
The workaround:
-pthread -Wl,--whole-archive -lpthread -Wl,--no-whole-archive
fixes some of the problems, but not all TODO which were missing?, so we are just skipping those tests for now.