Subject: Re: progress on COMPAT_LINUX: java and hello world
To: Emmanuel Dreyfus <manu@NetBSD.org>
From: Nicolas Joly <njoly@pasteur.fr>
List: port-amd64
Date: 11/07/2005 15:14:08
--sm4nu43k4a2Rpi4c
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Sat, Nov 05, 2005 at 08:24:54AM +0000, Emmanuel Dreyfus wrote:
> Hi
> 
> I made some progress on COMPAT_LINUX: java and javac from Linux are able
> to build a hello world and run it. The JVM hang after operation, though.
> It's probably because of bugs in Linux futex(2) emulation.
> 
> Feel free to help debugging that.

I just noticed that Linux uname(2) result is not correct on amd64,
even with your latest changes. It seems that LINUX_UNAME_ARCH macro is
never defined while processing `common/linux_misc.c' because of
missing include `common/linux_machdep.h'.

With the attched patch, the result looks good:

njoly@lanfeust [~]> uname -a
NetBSD lanfeust.sis.pasteur.fr 3.99.11 NetBSD 3.99.11 (LANFEUST) #0: Mon Nov  7 14:43:50 CET 2005  njoly@lanfeust.sis.pasteur.fr:/local/src/NetBSD/obj/amd64/sys/arch/amd64/compile/LANFEUST amd64
njoly@lanfeust [~]> file /usr/pkg/emul/linux/bin/uname
/usr/pkg/emul/linux/bin/uname: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.4.1, dynamically linked (uses shared libs), for GNU/Linux 2.4.1, not stripped
njoly@lanfeust [~]> /usr/pkg/emul/linux/bin/uname -m
x86_64

Hope this helps,
Regards.

-- 
Nicolas Joly

Biological Software and Databanks.
Institut Pasteur, Paris.

--sm4nu43k4a2Rpi4c
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="linuxmisc.diff"

Index: sys/compat/linux/common/linux_misc.c
===================================================================
RCS file: /cvsroot/src/sys/compat/linux/common/linux_misc.c,v
retrieving revision 1.142
diff -u -r1.142 linux_misc.c
--- sys/compat/linux/common/linux_misc.c	4 Nov 2005 16:58:14 -0000	1.142
+++ sys/compat/linux/common/linux_misc.c	7 Nov 2005 11:32:44 -0000
@@ -102,6 +102,7 @@
 #include <sys/sa.h>
 #include <sys/syscallargs.h>
 
+#include <compat/linux/common/linux_machdep.h>
 #include <compat/linux/common/linux_types.h>
 #include <compat/linux/common/linux_signal.h>
 

--sm4nu43k4a2Rpi4c--