List Info

Thread: linux emulation layer




linux emulation layer
country flaguser name
United States
2007-06-03 13:17:35
I've been wondering, would it be possible to run debian
mipsel  
packages on the hpcmips port if it had a linux emulation
layer? It  
would give us access to a lot of prebuilt packages. Also
does the  
hpcmips port not have a linux emulation because from what I
found  
from searching around it doesn't seem to, but I just want to
get this  
confirmed.

- Seshu Yamajala

Re: linux emulation layer
country flaguser name
United States
2007-06-12 14:50:57
On 2007-06-03 syamajalagamebox.net wrote:

> I've been wondering, would it be possible to run debian
mipsel
> packages on the hpcmips port if it had a linux
emulation layer? It
> would give us access to a lot of prebuilt packages.
Also does the
> hpcmips port not have a linux emulation because from
what I found
> from searching around it doesn't seem to, but I just
want to get this
> confirmed.

  There is mips support in linux compat code under
src/sys/compat/arch/mips.  I tried building a kernel with
"options
COMPAT_LINUX" and it needed a few changes to build, so
apparently it is
not used much and comments indicate that it is incomplete. 
There is quite
a bit of common code so it might work for some binaries. 
Patch attached
below and at: http://www.city-net.com/~darkstar/netbsd/mipslinux.diff

Matthew Orgass
darkstarcity-net.com

Index: sys/compat/linux/arch/mips/linux_machdep.c
============================================================
=======
RCS file:
/cvsroot/src/sys/compat/linux/arch/mips/linux_machdep.c,v
retrieving revision 1.30
diff -u -p -r1.30 linux_machdep.c
--- sys/compat/linux/arch/mips/linux_machdep.c	4 Mar 2007
06:01:22 -0000	1.30
+++ sys/compat/linux/arch/mips/linux_machdep.c	12 Jun 2007
18:52:31 -0000
 -157,7
+157,7  linux_sendsig(ksi, mask)
 	 */
 	if (onstack)
 		fp = (struct linux_sigframe *)
-		    ((void *)l->l_sigstk.ss_sp
+		    ((uint8_t *)l->l_sigstk.ss_sp
 		    + l->l_sigstk.ss_size);
 	else
 		/* cast for _MIPS_BSD_API == _MIPS_BSD_API_LP32_64CLEAN
case */
 -197,7
+197,7  linux_sendsig(ksi, mask)
 	 */
 	fp -= sizeof(struct linux_sigframe);
 	mutex_exit(&p->p_smutex);
-	error = copyout(&sf, fp, sizeof(sf);
+	error = copyout(&sf, fp, sizeof(sf));
 	mutex_enter(&p->p_smutex);

 	if (error != 0) {
 -337,8
+337,8  linux_fakedev(dev, raw)
  * We come here in a last attempt to satisfy a Linux
ioctl() call
  */
 int
-linux_machdepioctl(p, v, retval)
-	struct proc *p;
+linux_machdepioctl(l, v, retval)
+	struct lwp *l;
 	void *v;
 	register_t *retval;
 {
Index: sys/arch/mips/mips/linux_trap.c
============================================================
=======
RCS file: /cvsroot/src/sys/arch/mips/mips/linux_trap.c,v
retrieving revision 1.7
diff -u -p -r1.7 linux_trap.c
--- sys/arch/mips/mips/linux_trap.c	11 Dec 2005 12:18:09
-0000	1.7
+++ sys/arch/mips/mips/linux_trap.c	12 Jun 2007 18:52:32
-0000
 -51,7
+51,7  __KERNEL_RCSID(0, "$NetBSD: linux_trap.c
 #include <compat/linux/common/linux_exec.h>

 void
-linux_trapsignal(struct lwp *l, const ksiginfo_t *ksi)
+linux_trapsignal(struct lwp *l, ksiginfo_t *ksi)
 {

 	(*l->l_proc->p_emul->e_trapsignal)(l, ksi);

[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )