Re: [git pull] generic bitops, take 2

From: Ingo Molnar
Date: Sat Apr 26 2008 - 13:22:58 EST



* Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:

> On Sat, 26 Apr 2008, Ingo Molnar wrote:
> >
> > i've added Alexander's patch that does the cleanup suggested by you
>
> Well.. Not really:
>
> > diff --git a/arch/um/Kconfig.x86_64 b/arch/um/Kconfig.x86_64
> > index 3fbe69e..7a75043 100644
> > --- a/arch/um/Kconfig.x86_64
> > +++ b/arch/um/Kconfig.x86_64
> > @@ -27,6 +27,14 @@ config SMP_BROKEN
> > bool
> > default y
> >
> > +config GENERIC_FIND_FIRST_BIT
> > + bool
> > + default y
> > +
> > +config GENERIC_FIND_NEXT_BIT
> > + bool
> > + default y
> > +
>
> It still declares this GENERIC_FIND_*_BIT thing separately for UM.
>
> Yes, that may _work_, but it's wrong to define it in two different places.
>
> It also makes me wonder why Kconfig.i386 can just include
> arch/x86/Kconfig.cpu, but x86_64 cannot?

hm, indeed arch/um/Kconfig.i386 is assymetric to Kconfig.x86_64. Jeff
Cc:-ed.

trying to see whether changing that would still result in a working UML
arch i found that current UML doesnt seem to build here:

arch/um/os-Linux/helper.c: In function 'run_helper':
arch/um/os-Linux/helper.c:73: error: 'PATH_MAX' undeclared (first use in this function)

it needs the patch below.

then it fails with:

mm/filemap.c: In function '__generic_file_aio_write_nolock':
mm/filemap.c:1831: sorry, unimplemented: inlining failed in call to 'generic_write_checks': function body not available

i used:

make ARCH=um SUBARCH=x86_64 -j64 linux

on x86-64, gcc-4.3.0-0.13. Config is:

http://redhat.com/~mingo/misc/.config.um

i also tried gcc 4.2.3, that built it fine but didnt link it:

/opt/crosstool/gcc-4.2.3-glibc-2.3.6/x86_64-unknown-linux-gnu/lib/gcc/x86_64-unknown-linux-gnu/4.2.3/../../../../x86_64-unknown-linux-gnu/bin/ld:
warning: ld-linux-x86-64.so.2, needed by
/opt/crosstool/gcc-4.2.3-glibc-2.3.6/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/sys-root/lib/../lib64/libc.so.6,
not found (try using -rpath or -rpath-link)
/opt/crosstool/gcc-4.2.3-glibc-2.3.6/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/sys-root/lib/../lib64/libc.so.6:
undefined reference to `_dl_argv@GLIBC_PRIVATE'

...
/opt/crosstool/gcc-4.2.3-glibc-2.3.6/x86_64-unknown-linux-gnu/lib/gcc/x86_64-unknown-linux-gnu/4.2.3/../../../../x86_64-unknown-linux-gnu/bin/ld:
warning: .fini_array section has zero size collect2: ld returned 1 exit
status
distcc[29125] ERROR: compile (null) on localhost failed
KSYM .tmp_kallsyms1.S
/opt/crosstool/gcc-4.2.3-glibc-2.3.6/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-nm:
'.tmp_vmlinux1': No such file

perhaps the combination of distcc and crosscompilers doesnt work well on
UML? (it works fine with other architectures)

Ingo

--------------->
Subject: uml: fix
From: Ingo Molnar <mingo@xxxxxxx>
Date: Sat Apr 26 18:59:42 CEST 2008

Signed-off-by: Ingo Molnar <mingo@xxxxxxx>
---
arch/um/os-Linux/helper.c | 1 +
1 file changed, 1 insertion(+)

Index: linux-x86.q/arch/um/os-Linux/helper.c
===================================================================
--- linux-x86.q.orig/arch/um/os-Linux/helper.c
+++ linux-x86.q/arch/um/os-Linux/helper.c
@@ -14,6 +14,7 @@
#include "os.h"
#include "um_malloc.h"
#include "user.h"
+#include <linux/limits.h>

struct helper_data {
void (*pre_exec)(void*);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/