Skip to contentSkip to conversation

fix the UML compilation

PATCH In review Adrian Bunk 3 participants 4 messages Jan 5, 2007 – Jan 14, 2007 User-mode Linux (UML)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 fix the UML compilation

FYI:
I've applied the patch below to the 2.6.16 tree to fix the UML compilation on systems with recent kernel headers.

Please complain if anything is wrong with it.

cu
Adrian

commit cc0e04780f51553c88a2eb1a33f709346f6d0281

Author: Adrian Bunk <[email protected]>
Date:   Fri Jan 5 03:17:11 2007 +0100

fix the UML compilation

Based on patches from Linus' tree.

arch/um/os-Linux/process.c +2 -3
index d261888..a0afd10 100644
@@ -11,6 +11,7 @@
 #include <linux/unistd.h>
 #include <sys/mman.h>
 #include <sys/wait.h>
+#include <sys/syscall.h>
 #include "ptrace_user.h"
 #include "os.h"
 #include "user.h"
@@ -139,11 +140,9 @@ void os_usr1_process(int pid)
  * syscalls, and also breaks with clone(), which does not unshare the TLS.
  */
 
-inline _syscall0(pid_t, getpid)
-
 int os_getpid(void)
 {
-	return(getpid());
+	return(syscall(__NR_getpid));
 }
 
 int os_getpgrp(void)
arch/um/os-Linux/skas/process.c +1 -0
index bbf34cb..215ef68 100644
@@ -17,6 +17,7 @@
 #include <sys/time.h>
 #include <asm/unistd.h>
 #include <asm/types.h>
+#include <asm/page.h>
 #include "user.h"
 #include "sysdep/ptrace.h"
 #include "user_util.h"
arch/um/sys-i386/unmap.c +4 -7
index 1b0ad0e..8e55cd5 100644
@@ -5,20 +5,17 @@
 
 #include <linux/mman.h>
 #include <asm/unistd.h>
+#include <sys/syscall.h>
 
-static int errno;
-
-static inline _syscall2(int,munmap,void *,start,size_t,len)
-static inline _syscall6(void *,mmap2,void *,addr,size_t,len,int,prot,int,flags,int,fd,off_t,offset)
 int switcheroo(int fd, int prot, void *from, void *to, int size)
 {
-	if(munmap(to, size) < 0){
+	if (syscall(__NR_munmap, to, size) < 0){
 		return(-1);
 	}
-	if(mmap2(to, size, prot, MAP_SHARED | MAP_FIXED, fd, 0) == (void*) -1 ){
+	if (syscall(__NR_mmap2, to, size, prot, MAP_SHARED | MAP_FIXED, fd, 0) == (void*) -1 ){
 		return(-1);
 	}
-	if(munmap(from, size) < 0){
+	if (syscall(__NR_munmap, from, size) < 0){
 		return(-1);
 	}
 	return(0);
arch/um/sys-x86_64/unmap.c +4 -7
index f4a4bff..57c9286 100644
@@ -5,20 +5,17 @@
 
 #include <linux/mman.h>
 #include <asm/unistd.h>
+#include <sys/syscall.h>
 
-static int errno;
-
-static inline _syscall2(int,munmap,void *,start,size_t,len)
-static inline _syscall6(void *,mmap,void *,addr,size_t,len,int,prot,int,flags,int,fd,off_t,offset)
 int switcheroo(int fd, int prot, void *from, void *to, int size)
 {
-	if(munmap(to, size) < 0){
+	if (syscall(__NR_munmap, to, size) < 0){
 		return(-1);
 	}
-	if(mmap(to, size, prot, MAP_SHARED | MAP_FIXED, fd, 0) == (void*) -1){
+	if (syscall(__NR_mmap, to, size, prot, MAP_SHARED | MAP_FIXED, fd, 0) == (void*) -1){
 		return(-1);
 	}
-	if(munmap(from, size) < 0){
+	if (syscall(__NR_munmap, from, size) < 0){
 		return(-1);
 	}
 	return(0);

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
User-mode-linux-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

#1 lore raw
Quoted 5 lines · Adrian Bunk

FYI:
I've applied the patch below to the 2.6.16 tree to fix the UML compilation on systems with recent kernel headers.

Please complain if anything is wrong with it.

With this patch, if it builds, it's good.

Jeff

Signature · 11 lines
Work email - jdike at linux dot intel dot com

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
User-mode-linux-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
#2 lore raw
In reply to Adrian Bunk
Quoted 11 lines · Adrian Bunk

FYI:
I've applied the patch below to the 2.6.16 tree to fix the UML compilation on systems with recent kernel headers.

Please complain if anything is wrong with it.

cu
Adrian

commit cc0e04780f51553c88a2eb1a33f709346f6d0281

Quoted 9 lines
Author: Adrian Bunk <[email protected]>
Date:   Fri Jan 5 03:17:11 2007 +0100

fix the UML compilation

Based on patches from Linus' tree.

I reverted the below two hunks when they were applied on git tree, they're wrong (even because this code is compiled using our headers, not using host ones). In fact both in git HEAD and in 2.6.19 there is the correct code version.

Quoted 61 lines
arch/um/sys-i386/unmap.c +4 -7
index 1b0ad0e..8e55cd5 100644
@@ -5,20 +5,17 @@
 
 #include <linux/mman.h>
 #include <asm/unistd.h>
+#include <sys/syscall.h>
 
-static int errno;
-
-static inline _syscall2(int,munmap,void *,start,size_t,len)
-static inline _syscall6(void *,mmap2,void
 *,addr,size_t,len,int,prot,int,flags,int,fd,off_t,offset) int
 switcheroo(int fd, int prot, void *from, void *to, int size)
 {
-	if(munmap(to, size) < 0){
+	if (syscall(__NR_munmap, to, size) < 0){
 		return(-1);
 	}
-	if(mmap2(to, size, prot, MAP_SHARED | MAP_FIXED, fd, 0) == (void*) -1 ){
+	if (syscall(__NR_mmap2, to, size, prot, MAP_SHARED | MAP_FIXED, fd, 0) ==
 (void*) -1 ){ return(-1);
 	}
-	if(munmap(from, size) < 0){
+	if (syscall(__NR_munmap, from, size) < 0){
 		return(-1);
 	}
arch/um/sys-i386/unmap.c +0 -0
 	return(0);
arch/um/sys-x86_64/unmap.c +4 -7
index f4a4bff..57c9286 100644
@@ -5,20 +5,17 @@
 
 #include <linux/mman.h>
 #include <asm/unistd.h>
+#include <sys/syscall.h>
 
-static int errno;
-
-static inline _syscall2(int,munmap,void *,start,size_t,len)
-static inline _syscall6(void *,mmap,void
 *,addr,size_t,len,int,prot,int,flags,int,fd,off_t,offset) int
 switcheroo(int fd, int prot, void *from, void *to, int size)
 {
-	if(munmap(to, size) < 0){
+	if (syscall(__NR_munmap, to, size) < 0){
 		return(-1);
 	}
-	if(mmap(to, size, prot, MAP_SHARED | MAP_FIXED, fd, 0) == (void*) -1){
+	if (syscall(__NR_mmap, to, size, prot, MAP_SHARED | MAP_FIXED, fd, 0) ==
 (void*) -1){ return(-1);
 	}
-	if(munmap(from, size) < 0){
+	if (syscall(__NR_munmap, from, size) < 0){
 		return(-1);
 	}

return(0);

Signature · 17 lines
Inform me of my mistakes, so I can add them to my list!
Paolo Giarrusso, aka Blaisorblade
http://www.user-mode-linux.org/~blaisorblade

Chiacchiera con i tuoi amici in tempo reale! 
 http://it.yahoo.com/mail_it/foot/*http://it.messenger.yahoo.com 


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
User-mode-linux-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
#3 lore raw
Quoted 19 lines · Blaisorblade
Quoted 18 lines · Adrian Bunk

FYI:
I've applied the patch below to the 2.6.16 tree to fix the UML compilation on systems with recent kernel headers.

Please complain if anything is wrong with it.

cu
Adrian

commit cc0e04780f51553c88a2eb1a33f709346f6d0281

Author: Adrian Bunk <[email protected]>
Date:   Fri Jan 5 03:17:11 2007 +0100

fix the UML compilation

Based on patches from Linus' tree.

Quoted 7 lines
Quoted 2 lines

I reverted the below two hunks when they were applied on git tree, they're wrong (even because this code is compiled using our headers, not using host ones). In fact both in git HEAD and in 2.6.19 there is the correct code version.
...

Thanks, I missed this because in 2.6.16 it only affects the MODE_TT compilation (the tls.c's aren't in 2.6.16).

I've now additionally committed the patch below.

cu
Adrian

commit 12f5aa0834c6f2d55382daed856af509cd54b9f6

Author: Paolo 'Blaisorblade' Giarrusso <[email protected]>
Date:   Sun Jan 14 15:42:49 2007 +0100

UML: fix the MODE_TT compilation

arch/um/sys-i386/unmap.c +7 -4
index 8e55cd5..1b0ad0e 100644
@@ -5,17 +5,20 @@
 
 #include <linux/mman.h>
 #include <asm/unistd.h>
-#include <sys/syscall.h>
 
+static int errno;
+
+static inline _syscall2(int,munmap,void *,start,size_t,len)
+static inline _syscall6(void *,mmap2,void *,addr,size_t,len,int,prot,int,flags,int,fd,off_t,offset)
 int switcheroo(int fd, int prot, void *from, void *to, int size)
 {
-	if (syscall(__NR_munmap, to, size) < 0){
+	if(munmap(to, size) < 0){
 		return(-1);
 	}
-	if (syscall(__NR_mmap2, to, size, prot, MAP_SHARED | MAP_FIXED, fd, 0) == (void*) -1 ){
+	if(mmap2(to, size, prot, MAP_SHARED | MAP_FIXED, fd, 0) == (void*) -1 ){
 		return(-1);
 	}
-	if (syscall(__NR_munmap, from, size) < 0){
+	if(munmap(from, size) < 0){
 		return(-1);
 	}
 	return(0);
arch/um/sys-x86_64/unmap.c +7 -4
index 57c9286..f4a4bff 100644
@@ -5,17 +5,20 @@
 
 #include <linux/mman.h>
 #include <asm/unistd.h>
-#include <sys/syscall.h>
 
+static int errno;
+
+static inline _syscall2(int,munmap,void *,start,size_t,len)
+static inline _syscall6(void *,mmap,void *,addr,size_t,len,int,prot,int,flags,int,fd,off_t,offset)
 int switcheroo(int fd, int prot, void *from, void *to, int size)
 {
-	if (syscall(__NR_munmap, to, size) < 0){
+	if(munmap(to, size) < 0){
 		return(-1);
 	}
-	if (syscall(__NR_mmap, to, size, prot, MAP_SHARED | MAP_FIXED, fd, 0) == (void*) -1){
+	if(mmap(to, size, prot, MAP_SHARED | MAP_FIXED, fd, 0) == (void*) -1){
 		return(-1);
 	}
-	if (syscall(__NR_munmap, from, size) < 0){
+	if(munmap(from, size) < 0){
 		return(-1);
 	}
 	return(0);

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
User-mode-linux-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel