public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [patch 02/11] uml: fix compilation for missing headers
@ 2005-01-13 21:00 blaisorblade_spam
  2005-01-14  0:20 ` Blaisorblade
  2005-01-14 19:22 ` Jeff Dike
  0 siblings, 2 replies; 3+ messages in thread
From: blaisorblade_spam @ 2005-01-13 21:00 UTC (permalink / raw)
  To: akpm; +Cc: linux-kernel, jdike, user-mode-linux-devel, blaisorblade_spam


Readd some needed headers inclusion deleted in
http://linux.bkbits.net:8080/linux-2.5/cset@41e49628dGbOWX-bT9yZII4f19GT6A

If you think it cannot make sense to include both <sys/ptrace.h> and
<linux/ptrace.h> (as userspace process, i.e. host includes), go complaining
with glibc, or follow the linux-abi includes idea.

However, the compilation failure is possibly glibc-version (or better glibc
includes version) related - what I now is that the failure happens on my
system with a glibc 2.3.4 (from Gentoo).

Also, remove some syscalls from the syscall table, since some syscalls were
added which are only inside -mm currently, and this prevents currently
compilation.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it>
---

 linux-2.6.11-paolo/arch/um/kernel/process.c        |    4 ++++
 linux-2.6.11-paolo/arch/um/kernel/sys_call_table.c |   13 +++++++++++++
 2 files changed, 17 insertions(+)

diff -puN arch/um/kernel/process.c~uml-fix-compilation-for-missing-headers arch/um/kernel/process.c
--- linux-2.6.11/arch/um/kernel/process.c~uml-fix-compilation-for-missing-headers	2005-01-13 19:57:51.000000000 +0100
+++ linux-2.6.11-paolo/arch/um/kernel/process.c	2005-01-13 19:59:30.000000000 +0100
@@ -13,6 +13,10 @@
 #include <setjmp.h>
 #include <sys/time.h>
 #include <sys/ptrace.h>
+
+/*Userspace header, must be after sys/ptrace.h, and both must be included. */
+#include <linux/ptrace.h>
+
 #include <sys/wait.h>
 #include <sys/mman.h>
 #include <asm/unistd.h>
diff -puN arch/um/kernel/sys_call_table.c~uml-fix-compilation-for-missing-headers arch/um/kernel/sys_call_table.c
--- linux-2.6.11/arch/um/kernel/sys_call_table.c~uml-fix-compilation-for-missing-headers	2005-01-13 20:48:02.000000000 +0100
+++ linux-2.6.11-paolo/arch/um/kernel/sys_call_table.c	2005-01-13 21:17:23.866866296 +0100
@@ -20,7 +20,11 @@
 #define NFSSERVCTL sys_ni_syscall
 #endif
 
+#if 0
 #define LAST_GENERIC_SYSCALL __NR_vperfctr_read
+#else
+#define LAST_GENERIC_SYSCALL __NR_keyctl
+#endif
 
 #if LAST_GENERIC_SYSCALL > LAST_ARCH_SYSCALL
 #define LAST_SYSCALL LAST_GENERIC_SYSCALL
@@ -54,11 +58,14 @@ extern syscall_handler_t sys_get_mempoli
 extern syscall_handler_t sys_set_mempolicy;
 extern syscall_handler_t sys_sys_kexec_load;
 extern syscall_handler_t sys_sys_setaltroot;
+
+#if 0
 extern syscall_handler_t sys_vperfctr_open;
 extern syscall_handler_t sys_vperfctr_control;
 extern syscall_handler_t sys_vperfctr_unlink;
 extern syscall_handler_t sys_vperfctr_iresume;
 extern syscall_handler_t sys_vperfctr_read;
+#endif
 
 syscall_handler_t *sys_call_table[] = {
 	[ __NR_restart_syscall ] = (syscall_handler_t *) sys_restart_syscall,
@@ -273,7 +280,10 @@ syscall_handler_t *sys_call_table[] = {
 	[ __NR_mq_timedreceive ] = (syscall_handler_t *) sys_mq_timedreceive,
 	[ __NR_mq_notify ] = (syscall_handler_t *) sys_mq_notify,
 	[ __NR_mq_getsetattr ] = (syscall_handler_t *) sys_mq_getsetattr,
+#if 0
 	[ __NR_sys_kexec_load ] = (syscall_handler_t *) sys_kexec_load,
+#endif
+	[ __NR_sys_kexec_load ] = (syscall_handler_t *) sys_ni_syscall,
 	[ __NR_waitid ] = (syscall_handler_t *) sys_waitid,
 #if 0
 	[ __NR_sys_setaltroot ] = (syscall_handler_t *) sys_sys_setaltroot,
@@ -281,11 +291,14 @@ syscall_handler_t *sys_call_table[] = {
 	[ __NR_add_key ] = (syscall_handler_t *) sys_add_key,
 	[ __NR_request_key ] = (syscall_handler_t *) sys_request_key,
 	[ __NR_keyctl ] = (syscall_handler_t *) sys_keyctl,
+	/* These syscalls are still in -mm only*/
+#if 0
 	[ __NR_vperfctr_open ] = (syscall_handler_t *) sys_vperfctr_open,
 	[ __NR_vperfctr_control ] = (syscall_handler_t *) sys_vperfctr_control,
 	[ __NR_vperfctr_unlink ] = (syscall_handler_t *) sys_vperfctr_unlink,
 	[ __NR_vperfctr_iresume ] = (syscall_handler_t *) sys_vperfctr_iresume,
 	[ __NR_vperfctr_read ] = (syscall_handler_t *) sys_vperfctr_read,
+#endif
 
 	ARCH_SYSCALLS
 	[ LAST_SYSCALL + 1 ... NR_syscalls ] = 
_

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [patch 02/11] uml: fix compilation for missing headers
  2005-01-13 21:00 [patch 02/11] uml: fix compilation for missing headers blaisorblade_spam
@ 2005-01-14  0:20 ` Blaisorblade
  2005-01-14 19:22 ` Jeff Dike
  1 sibling, 0 replies; 3+ messages in thread
From: Blaisorblade @ 2005-01-14  0:20 UTC (permalink / raw)
  To: blaisorblade_spam; +Cc: akpm, linux-kernel, jdike, user-mode-linux-devel

Sorry, I reposted the same patch inside the bunch of ones, hope it's not a 
problem. However, I've seen some more problems which I didn't fix in the 
patch:
> +#if 0
>  #define LAST_GENERIC_SYSCALL __NR_vperfctr_read
> +#else
> +#define LAST_GENERIC_SYSCALL __NR_keyctl
> +#endif
>
>  #if LAST_GENERIC_SYSCALL > LAST_ARCH_SYSCALL
>  #define LAST_SYSCALL LAST_GENERIC_SYSCALL
> @@ -54,11 +58,14 @@ extern syscall_handler_t sys_get_mempoli
>  extern syscall_handler_t sys_set_mempolicy;
>  extern syscall_handler_t sys_sys_kexec_load;
>  extern syscall_handler_t sys_sys_setaltroot;
> +
> +#if 0
>  extern syscall_handler_t sys_vperfctr_open;
>  extern syscall_handler_t sys_vperfctr_control;
>  extern syscall_handler_t sys_vperfctr_unlink;
>  extern syscall_handler_t sys_vperfctr_iresume;
>  extern syscall_handler_t sys_vperfctr_read;
> +#endif
>
>  syscall_handler_t *sys_call_table[] = {
>   [ __NR_restart_syscall ] = (syscall_handler_t *) sys_restart_syscall,
> @@ -273,7 +280,10 @@ syscall_handler_t *sys_call_table[] = {
>   [ __NR_mq_timedreceive ] = (syscall_handler_t *) sys_mq_timedreceive,
>   [ __NR_mq_notify ] = (syscall_handler_t *) sys_mq_notify,
>   [ __NR_mq_getsetattr ] = (syscall_handler_t *) sys_mq_getsetattr,
> +#if 0
>   [ __NR_sys_kexec_load ] = (syscall_handler_t *) sys_kexec_load,
> +#endif
> + [ __NR_sys_kexec_load ] = (syscall_handler_t *) sys_ni_syscall,
>   [ __NR_waitid ] = (syscall_handler_t *) sys_waitid,
>  #if 0
>   [ __NR_sys_setaltroot ] = (syscall_handler_t *) sys_sys_setaltroot,
This is left alone, but this way, the "285" syscall is not set at all, while 
it should be sys_ni_syscall like for what I commented out (apart the ones at 
the end).
> @@ -281,11 +291,14 @@ syscall_handler_t *sys_call_table[] = {
>   [ __NR_add_key ] = (syscall_handler_t *) sys_add_key,
>   [ __NR_request_key ] = (syscall_handler_t *) sys_request_key,
>   [ __NR_keyctl ] = (syscall_handler_t *) sys_keyctl,
> + /* These syscalls are still in -mm only*/
> +#if 0
>   [ __NR_vperfctr_open ] = (syscall_handler_t *) sys_vperfctr_open,
>   [ __NR_vperfctr_control ] = (syscall_handler_t *) sys_vperfctr_control,
>   [ __NR_vperfctr_unlink ] = (syscall_handler_t *) sys_vperfctr_unlink,
>   [ __NR_vperfctr_iresume ] = (syscall_handler_t *) sys_vperfctr_iresume,
>   [ __NR_vperfctr_read ] = (syscall_handler_t *) sys_vperfctr_read,
> +#endif
>
>   ARCH_SYSCALLS
>   [ LAST_SYSCALL + 1 ... NR_syscalls ] =
> _
While looking at the unistd.h code, I discovered another bug (for i386) - I'm 
posting it here to avoid forgetting it:

/*
 * user-visible error numbers are in the range -1 - -128: see
 * <asm-i386/errno.h>
 */

But in include/asm-generic/errno.h, there is a problem:

#define EKEYREVOKED     128     /* Key has been revoked */
#define EKEYREJECTED    129     /* Key was rejected by service */

I.e. the range has changed...
I think that the max errno value should become a macro defined in errno.h.
-- 
Paolo Giarrusso, aka Blaisorblade
Linux registered user n. 292729
http://www.user-mode-linux.org/~blaisorblade

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [patch 02/11] uml: fix compilation for missing headers
  2005-01-13 21:00 [patch 02/11] uml: fix compilation for missing headers blaisorblade_spam
  2005-01-14  0:20 ` Blaisorblade
@ 2005-01-14 19:22 ` Jeff Dike
  1 sibling, 0 replies; 3+ messages in thread
From: Jeff Dike @ 2005-01-14 19:22 UTC (permalink / raw)
  To: blaisorblade_spam; +Cc: akpm, linux-kernel, user-mode-linux-devel

blaisorblade_spam@yahoo.it said:
> If you think it cannot make sense to include both <sys/ptrace.h> and
> <linux/ptrace.h> (as userspace process, i.e. host includes), go
> complaining with glibc, or follow the linux-abi includes idea.

> However, the compilation failure is possibly glibc-version (or better
> glibc includes version) related - what I now is that the failure
> happens on my system with a glibc 2.3.4 (from Gentoo).

> Also, remove some syscalls from the syscall table, since some syscalls
> were added which are only inside -mm currently, and this prevents
> currently compilation. 

Hold off on this one.  I have different fixes for this in my tree.

The system ptrace headers (asm/ptrace.h, sys/ptrace.h, linux/ptrace.h) have
varying effects, depending on distro and architecture.  So, I decided to put
sysdep/ptrace_user.h in charge of supplying the system ptrace information to
the rest of UML.  This has some ripple effects which I am in the process of
sorting out.

On the system calls, I have them indef-ed depending on whether one of the
__NR_vperf symbols are defined.  This will go away when the entry points
are in both -mm and -linus.

				Jeff


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2005-01-14 17:00 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-01-13 21:00 [patch 02/11] uml: fix compilation for missing headers blaisorblade_spam
2005-01-14  0:20 ` Blaisorblade
2005-01-14 19:22 ` Jeff Dike

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox