2005-02-05 16:55:05

by Rob Landley

[permalink] [raw]
Subject: [patch] Make User Mode Linux compile in 2.6.11-rc3

As of yesterday afternoon, the UML build still breaks in sys_call_table.c,
here's the patch I submitted earlier (which got me past the break when I
tried it). Last week, this produced what seemed like a working UML.

Now there's a second break in mm/memory.c: the move to four level page
tables conflicts with a stub in our headers. Not quite sure how to fix that.
Jeff?

(Yeah, I know Andrew's tree works. But wouldn't it be nice if the kernel.org
tree to worked too, before 2.6.11 release.)

Rob

---------- Forwarded Message ----------

Subject: [uml-devel] [patch] Make User Mode Linux compile in 2.6.11-rc2-bk6.
Date: Saturday 29 January 2005 05:51 am
From: Rob Landley <[email protected]>
To: [email protected], [email protected]

User Mode Linux doesn't compile in 2.6.11-rc2-bk6. Here's the change I
made to sys_call_table.c to make it compile. (I ran the result and brought
up a shell.)

We're really close to finally having a usable UML kernel in mainline.
2.6.9's ARCH=um built but was very unstable, 2.6.10 didn't even build
for me, but 2.6.11-rc1-mm2 builds fine unmodified, and ran my tests
correctly to completion.

Here's the patch. Nothing fancy, it simply removes or stubs out all the
syscalls the compiler complains about.

Rob

Signed-off-by: Rob Landley <[email protected]>

--- linux-2.6.10/arch/um/kernel/sys_call_table.c 2005-01-28
21:20:38.000000000 -0600 +++
linux-2.6.10-um/arch/um/kernel/sys_call_table.c 2005-01-28
21:40:30.735892144 -0600 @@ -20,7 +20,7 @@
#define NFSSERVCTL sys_ni_syscall
#endif

-#define LAST_GENERIC_SYSCALL __NR_vperfctr_read
+#define LAST_GENERIC_SYSCALL (NR_syscalls-1)

#if LAST_GENERIC_SYSCALL > LAST_ARCH_SYSCALL
#define LAST_SYSCALL LAST_GENERIC_SYSCALL
@@ -52,13 +52,7 @@
extern syscall_handler_t sys_mbind;
extern syscall_handler_t sys_get_mempolicy;
extern syscall_handler_t sys_set_mempolicy;
-extern syscall_handler_t sys_sys_kexec_load;
extern syscall_handler_t sys_sys_setaltroot;
-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;

syscall_handler_t *sys_call_table[] = {
[ __NR_restart_syscall ] = (syscall_handler_t *) sys_restart_syscall,
@@ -273,7 +267,7 @@
[ __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,
- [ __NR_sys_kexec_load ] = (syscall_handler_t *) sys_kexec_load,
+ [ __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 +275,6 @@
[ __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,
- [ __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,

ARCH_SYSCALLS
[ LAST_SYSCALL + 1 ... NR_syscalls ] =


2005-02-05 18:01:28

by Frank Sorenson

[permalink] [raw]
Subject: Re: [uml-devel] [patch] Make User Mode Linux compile in 2.6.11-rc3

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Rob Landley wrote:
| As of yesterday afternoon, the UML build still breaks in
sys_call_table.c,
| here's the patch I submitted earlier (which got me past the break when I
| tried it). Last week, this produced what seemed like a working UML.
|
| Now there's a second break in mm/memory.c: the move to four level page
| tables conflicts with a stub in our headers. Not quite sure how to
fix that.
| Jeff?
|
| (Yeah, I know Andrew's tree works. But wouldn't it be nice if the
kernel.org
| tree to worked too, before 2.6.11 release.)

This patch for sys_call_table.c was merged into the main tree in this
changeset:
http://linux.bkbits.net:8080/linux-2.5/[email protected]?nav=index.html|ChangeSet@-2d

The patch fixes both the sys_call_table and the pud_alloc breakage, and
as of 2.6.11-rc3-bk2, the main tree compiles again for UML.

Andrew's tree, however, (at least 2.6.11-rc3-mm1) requires the patch I
sent out yesterday in the message titled "Fix compilation of UML after
the stack-randomization patches."

Frank
- --
Frank Sorenson - KD7TZK
Systems Manager, Computer Science Department
Brigham Young University
[email protected]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFCBQlRaI0dwg4A47wRAjJ8AJ9CKD/aXaz1TS9QfOO11vcsv+57BACg1CdJ
GR0ukCKAabFtJs5rVsPItGg=
=h/on
-----END PGP SIGNATURE-----

2005-02-06 18:03:21

by Rob Landley

[permalink] [raw]
Subject: Re: [uml-devel] [patch] Make User Mode Linux compile in 2.6.11-rc3

On Saturday 05 February 2005 01:00 pm, Frank Sorenson wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Rob Landley wrote:
> | As of yesterday afternoon, the UML build still breaks in
> | sys_call_table.c,
...
> This patch for sys_call_table.c was merged into the main tree in this
> changeset:
> http://linux.bkbits.net:8080/linux-2.5/[email protected]?nav=index.html|ChangeSet
>@-2d
>
> The patch fixes both the sys_call_table and the pud_alloc breakage, and
> as of 2.6.11-rc3-bk2, the main tree compiles again for UML.

Verified. 2.6.11-rc3-bk2 does indeed build, and the result is chugging
through my big compile script. It seems to be working fine, although ye olde
display glitch is still there:

binutils-2.14/ld/testsuite/ld-sparc/tlssunbin64.rd
binutils-2.14/ld/testsuite/lde/ld-/ld-sld-spd-spa-sparsparcparc/arc/trc/tlc/tls/tlsstlssulssunssunbsunbiunbinnbin6bin64in64.n64.s64.s4.s.ss
binubinutinutinutilutilstils-ils-2ls-2.s-2.1-2.142.14/.14/l14/ld4/ld//ld/tld/ted/tes/testtestsestsustsuitsuitsuiteuite/ite/lte/lde/ld-/ld-sld-spd-spa-sparsparcparc/tlssunbin64.sd
binutils-2.14/ld/testsuite/ld-sparc/tlssunbin64.td

But that's a purely cosmetic bug.

Thanks,

Rob