On Thursday 17 November 2005 12:40, Jeff Dike wrote:
> On Wed, Nov 16, 2005 at 06:11:38PM -0600, Rob Landley wrote:
> > include/asm/processor.h:19: error: field `tls' has incomplete type
>
> This is strange.  It's complaining about not having a struct user_desc,
> which is defined in asm-i386/ldt.h, which is included from
> asm-um/ldt-i386.h through the asm/arch symlink.
>
> Your asm/arch link points to asm-i386, doesn't it?

Let's see.  Grab a fresh patches.tar off the website, cd into the source 
directory of 2.6.15-rc1 that just built but didn't work to give the assembly 
dump from a moment ago, and go:

 for i in `cat patches/series`; do patch -p1 -i patches/$i; done

mkdir ../linux-umlbuild2
make KCONFIG_ALLCONFIG=../../sources/system/uml-miniconf \
        ARCH=um O=../linux-umlbuild2 allnoconfig
cd ../linux-umlbuild2
make ARCH=um

And it dies with:

  SPLIT   include/linux/autoconf.h -> include/config/*
gcc -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing 
-fno-common -ffreestanding -O2     -fomit-frame-pointer  -D__arch_um__ 
-DSUBARCH=\"i386\" -Iarch/um/include 
-I/home/landley/newbuild/firmware-build/tmpdir/linux-2.6.14/arch/um/include  
-I/home/landley/newbuild/firmware-build/tmpdir/linux-2.6.14/arch/um/include/skas
 
-Dvmap=kernel_vmap -Din6addr_loopback=kernel_in6addr_loopback 
-Derrno=kernel_errno -Dsigprocmask=kernel_sigprocmask  -U__i386__ -Ui386 
-march=i686 -mpreferred-stack-boundary=2 -D_LARGEFILE64_SOURCE    -nostdinc 
-isystem /usr/lib/gcc-lib/i486-linux/3.3.5/include -D__KERNEL__ -Iinclude 
-Iinclude2 
-I/home/landley/newbuild/firmware-build/tmpdir/linux-2.6.14/include -include 
include/linux/autoconf.h -S -o 
arch/um/kernel-offsets.s 
/home/landley/newbuild/firmware-build/tmpdir/linux-2.6.14/arch/um/sys-i386/kernel-offsets.c
In file included from include2/asm/thread_info.h:12,
                 from 
/home/landley/newbuild/firmware-build/tmpdir/linux-2.6.14/include/linux/thread_info.h:21,
                 from 
/home/landley/newbuild/firmware-build/tmpdir/linux-2.6.14/include/linux/spinlock.h:53,
                 from 
/home/landley/newbuild/firmware-build/tmpdir/linux-2.6.14/include/linux/capability.h:45,
                 from 
/home/landley/newbuild/firmware-build/tmpdir/linux-2.6.14/include/linux/sched.h:7,
                 from 
/home/landley/newbuild/firmware-build/tmpdir/linux-2.6.14/arch/um/sys-i386/kernel-offsets.c:3:
include/asm/processor.h:19: error: field `tls' has incomplete type

I can send you the tarball of this linux-umlbuild2 directory if you like (it's 
118k).

find . -name asm
./include/asm
./include2/asm

ls -l include/asm include2/asm
lrwxrwxrwx  1 landley landley 72 2005-11-17 16:46 include2/asm 
-> /home/landley/newbuild/firmware-build/tmpdir/linux-2.6.14/include/asm-um
lrwxrwxrwx  1 landley landley  6 2005-11-17 16:46 include/asm -> asm-um

ls -l include/asm/arch include2/asm/arch
ls: include2/asm/arch: No such file or directory
lrwxrwxrwx  1 landley landley 74 2005-11-17 16:46 include/asm/arch 
-> /home/landley/newbuild/firmware-build/tmpdir/linux-2.6.14/include/asm-i386

I have no idea what the difference between include and include2 is, but it's 
there on the straight -rc1 that built, so I'm assuming it's intentional.

> > error: syntax error before "uml_ldt_t"
>
> uml_ldt_t is clearly typedefed in asm/ldt-i386.h, which is symlinked from
> ldt.h, which is included into mme-skas.h.
>
> Your recipe says you did a completely clean build, but the symptoms look
> to me like you have leftovers from a non-UML or non-UML/i386 build.

I've never done any non-x86 builds on my laptop.  (Only an x86 toolchain 
installed.)  I have done non-UML builds, but this is a clean directory.

gcc -v says:
Reading specs from /usr/lib/gcc-lib/i486-linux/3.3.5/specs
Configured with: ../src/configure -v 
--enable-languages=c,c++,java,f77,pascal,objc,ada,treelang --prefix=/usr 
--mandir=/usr/share/man --infodir=/usr/share/info 
--with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared 
--with-system-zlib --enable-nls --without-included-gettext 
--enable-__cxa_atexit --enable-clocale=gnu --enable-debug 
--enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc i486-linux
Thread model: posix
gcc version 3.3.5 (Debian 1:3.3.5-8ubuntu2)

I have noticed that if you do a UML build and then make ARCH=um distclean and 
diff the directory with a freshly extracted tarball, you get all sorts of 
crud left over.  But that's a side issue.  (And another reason to use O=, I 
suppose...)

>     Jeff

Rob


-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc.  Get Certified Today
Register for a JBoss Training Course.  Free Certification Exam
for All Training Attendees Through End of 2005. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

Reply via email to