Subject: port-alpha/26116: osf1 emul needs fix to run netscape
To: None <gnats-bugs@gnats.netbsd.org>
From: Dieter <netbsd@sopwith.solgatos.com>
List: netbsd-bugs
Date: 06/29/2004 19:34:25
>Number: 26116
>Category: port-alpha
>Synopsis: netscape does not run due to unimplemented osf1 system calls
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: port-alpha-maintainer
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Jun 29 20:19:00 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator: Dieter
>Release: NetBSD 1.6.2
>Organization:
>Environment:
System: NetBSD sopwith.uucp 1.6.2 NetBSD 1.6.2 (ALPHA-$Revision: 1.4 $) #11: Tue Jun 29 12:05:05 PDT 2004 root@sopwith.uucp:/usr/src/sys/arch/alpha/compile/SOPWITH alpha
Architecture: alpha
Machine: alpha
>Description:
Netscape does not run due to unimplemented osf1 system calls.
Appariently it does run for some people, but not for others?
>How-To-Repeat:
Attempt to run a Digital Unix version of Netscape on an Alpha.
It dies. ktrace(1) is helpful.
>Fix:
===================================================================
RCS file: RCS/osf1_syscall.h,v
retrieving revision 1.1
diff -r1.1 osf1_syscall.h
360a361,369
> /* syscall: "msgget" ret: "int" args: "key_t" "int" */
> #define OSF1_SYS_msgget 201
>
> /* syscall: "msgrcv" ret: "int" args: "int" "void *" "size_t" "int" */
> #define OSF1_SYS_msgrcv 202
>
> /* syscall: "msgsnd" ret: "int" args: "int" "void *" "size_t" "int" */
> #define OSF1_SYS_msgsnd 203
>
===================================================================
RCS file: RCS/osf1_syscallargs.h,v
retrieving revision 1.1
diff -r1.1 osf1_syscallargs.h
483a484,488
>
> int sys_msgget __P((struct proc *, void *, register_t *));
> int sys_msgrcv __P((struct proc *, void *, register_t *));
> int sys_msgsnd __P((struct proc *, void *, register_t *));
>
===================================================================
RCS file: RCS/osf1_syscalls.c,v
retrieving revision 1.1
diff -r1.1 osf1_syscalls.c
229,231c229,231
< "#201 (unimplemented msgget)", /* 201 = unimplemented msgget */
< "#202 (unimplemented msgrcv)", /* 202 = unimplemented msgrcv */
< "#203 (unimplemented msgsnd)", /* 203 = unimplemented msgsnd */
---
> "msgget", /* 201 = msgget */
> "msgrcv", /* 202 = msgrcv */
> "msgsnd", /* 203 = msgsnd */
===================================================================
RCS file: RCS/osf1_sysent.c,v
retrieving revision 1.1
diff -r1.1 osf1_sysent.c
430,435c430,435
< { 0, 0, 0,
< sys_nosys }, /* 201 = unimplemented msgget */
< { 0, 0, 0,
< sys_nosys }, /* 202 = unimplemented msgrcv */
< { 0, 0, 0,
< sys_nosys }, /* 203 = unimplemented msgsnd */
---
> { 2, s(struct sys_msgget_args), 0,
> sys_msgget }, /* 201 = msgget */
> { 4, s(struct sys_msgrcv_args), 0,
> sys_msgrcv }, /* 202 = msgrcv */
> { 4, s(struct sys_msgsnd_args), 0,
> sys_msgsnd }, /* 203 = msgsnd */
===================================================================
RCS file: RCS/syscalls.master,v
retrieving revision 1.1
diff -r1.1 syscalls.master
316,318c316,318
< 201 UNIMPL msgget
< 202 UNIMPL msgrcv
< 203 UNIMPL msgsnd
---
> 201 NOARGS { int sys_msgget(key_t key, int msgflg); }
> 202 NOARGS { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, int msgflg); }
> 203 NOARGS { int sys_msgsnd(int msqid, void *msgp, size_t msgsz, int msgflg); }
>Release-Note:
>Audit-Trail:
>Unformatted: