linux-user, alpha: fix oldumount syscall
When we try to bootstrap debian/lenny for alpha, it fails because it cannot umount /.root directory: ... Setting up initscripts (2.86.ds1-61) ... umount: /.root: Function not implemented dpkg: error processing initscripts (--configure): subprocess post-installation script returned error exit status 1 dpkg: sysvinit: dependency problems, but configuring anyway as you request: sysvinit depends on initscripts; however: Package initscripts is not configured yet. This is because, when we switched from syscall_nr.h to syscall.tbl, the syscall #321 has been renamed from umount to oldumount and syscall.c has not been updated to manage the new name. oldumount has been introduced in linux 2.1.116pre1 by: 7d32756b2 ("Import 2.1.116pre1") ... * We now support a flag for forced unmount like the other 'big iron' * unixes. Our API is identical to OSF/1 to avoid making a mess of AMD ... Fixes: 6116aea994 ("linux-user, alpha: add syscall table generation support") Signed-off-by: Laurent Vivier <laurent@vivier.eu> Message-Id: <20200502194642.32823-1-laurent@vivier.eu> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
This commit is contained in:
parent
ddc760832f
commit
6eb9dbf6a7
@ -8028,8 +8028,13 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
#ifdef TARGET_NR_umount
|
||||
#if defined(TARGET_NR_umount) || defined(TARGET_NR_oldumount)
|
||||
#if defined(TARGET_NR_umount)
|
||||
case TARGET_NR_umount:
|
||||
#endif
|
||||
#if defined(TARGET_NR_oldumount)
|
||||
case TARGET_NR_oldumount:
|
||||
#endif
|
||||
if (!(p = lock_user_string(arg1)))
|
||||
return -TARGET_EFAULT;
|
||||
ret = get_errno(umount(p));
|
||||
|
Loading…
x
Reference in New Issue
Block a user