[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: libc6:m68k 2.28-1



Hi,

On 12/6/18 1:10 AM, Finn Thain wrote:
On Tue, 4 Dec 2018, John Paul Adrian Glaubitz wrote:
On 12/3/18 8:13 AM, Finn Thain wrote:
The problem turns out to be dash. I got things working again by replacing
/bin/sh and /bin/dash with symlinks to bash and then running
'apt --fix-broken install' to finish the upgrade.

Thanks for the heads-up! I just ran into this problem with qemu-system but
not with qemu-user. I wonder whether it's related to [1].


It happens in aranym too. I tried strace,

execve("/root/dash", ["/root/dash", "-c", "/bin/echo"], ["PWD=/",
"HOME=/", "BOOT_IMAGE=vmlinux", "TERM=linux", "SHLVL=1",
"_=/usr/bin/strace"]) = 0

[...]

get_thread_area()                       = 0xc0022490
get_thread_area()                       = 0xc0022490
get_thread_area()                       = 0xc0022490
get_thread_area()                       = 0xc0022490
get_thread_area()                       = 0xc0022490
get_thread_area()                       = 0xc0022490
get_thread_area()                       = 0xc0022490
clone(child_stack=NULL,
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=NULL) = 415
wait4(-1,
0xefdaba3e, 0, NULL)          = -1 ECHILD (No child processes)
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=415, si_uid=0,
si_status=0, si_utime=0, si_stime=2} ---
rt_sigreturn({mask=[]})                 = -1 ECHILD (No child processes)
get_thread_area()                       = 0xc0022490
wait4(-1, 0xefdaba3e, 0, NULL)          = -1 ECHILD (No child processes)
get_thread_area()                       = 0xc0022490
wait4(-1, 0xefdaba3e, 0, NULL)          = -1 ECHILD (No child processes)
get_thread_area()                       = 0xc0022490
wait4(-1, 0xefdaba3e, 0, NULL)          = -1 ECHILD (No child processes)
get_thread_area()                       = 0xc0022490
wait4(-1, 0xefdaba3e, 0, NULL)          = -1 ECHILD (No child processes)

The last two lines loop indefinitely, and dash never teminates, even
though the child process has terminated already (SIGCHLD can be seen
above).

With Hatari (68000-68060 Atari) emulator, you should be able profile
what kernel is doing at CPU instruction level:
https://hg.tuxfamily.org/mercurialroot/hatari/hatari/raw-file/tip/doc/manual.html#Profiler

I don't think anybody's tried running full Linux with Hatari yet
(only no-MMU ones), but it shares CPU core with WinUAE, which has
been tested with NetBSD & Linux, so Linux "should" work fine e.g.
with Hatari's Atari TT emulation.

I can help with anything Hatari related (first thing, change crypto
from sha e.g. to md5, otherwise logging in takes ages, even if cycle-
exact emulation is disabled.  Higher emulation accuracy and no JIT,
makes Hatari *much* slower than Aranym).

Note: for 030/040/060 MMU + prefetch + i/d-cache emulation, you should
build Mercurial version of Hatari:
	hg clone http://hg.tuxfamily.org/mercurialroot/hatari/hatari

(Latest 2.1 Hatari release emulates either MMU or cache, not both at
the same time, is quite old and its MMU emulation had several bugs.
Aranym emulates only 040, and AFAIK doesn't have any cache emulation.)


	- Eero


Reply to: