Defconfig broken in current svn?

Denys Vlasenko vda.linux at googlemail.com
Sun Apr 19 00:11:41 UTC 2009


On Saturday 18 April 2009 22:56, Mike Frysinger wrote:
> On Friday 17 April 2009 04:16:51 walter harms wrote:
> > Rob Landley schrieb:
> > > On Thursday 16 April 2009 18:09:56 Denys Vlasenko wrote:
> > >> On Thursday 16 April 2009 22:48, Rob Landley wrote:
> > >>> On Thursday 16 April 2009 14:30:54 Denys Vlasenko wrote:
> > >>>> On Wednesday 15 April 2009 09:21, Rob Landley wrote:
> > >>>>> Anybody else hit this?
> > >>>>>
> > >>>>>   CC      miscutils/flash_eraseall.o
> > >>>>> miscutils/flash_eraseall.c:14:26: error: mtd/mtd-user.h: No such file
> > >>>>> or directory
> > >>>>> miscutils/flash_eraseall.c:15:28: error: mtd/jffs2-user.h: No such
> > >>>>> file or directory
> > >>>>> miscutils/flash_eraseall.c:41: error: expected ‘)’ before ‘*’ token
> > >>>>> miscutils/flash_eraseall.c: In function ‘flash_eraseall_main’:
> > >>>>>
> > >>>>> And so on...
> > >>>>
> > >>>> flash_eraseall applet seems to require quite fresh headers...
> > >>>> I even tweaked uclibc's kernel header exporting make target
> > >>>> to make it work.
> > >>>> --
> > >>>> vda
> > >>>
> > >>> Please take it out of the defconfig then.  An applet that build breaks
> > >>> on anything but the most recent kernel probably isn't a good thing to
> > >>> have enabled by default.
> > >>
> > >> I see those files at least on linux-2.6.20.7 (oldest 2.6 kernel I found
> > >> on my box). It's uclibc kernel exporting machinery's fault they aren't
> > >> packaged. Fixed in uclibc svn.
> > >
> > > The build break I'm seeing is on a Kubuntu 8.04 laptop (which is still
> > > the current LTS release), not a uClibc system.  It's a glibc system, and
> > > there's no "mtd" directory anywhere under /usr/include, nor is there an
> > > mtd-user.h
> > >
> > > I also checked the Ubuntu 8.10 image I was using before I downgraded (due
> > > to Ubuntu 8.10 being so horrible it eventually ate itself), and it hasn't
> > > got an mtd-user.h in its /usr/include directory either.  Possibly I have
> > > to install some -dev package to get it, but I dunno which one.
> >
> > i did a quick search with google and mtd-user.h should read
> > linux/mtd/mdt-user.h and is already with kernel 2.6.9. an  mtd.h is with
> > early 2.4 kernels.
> 
> correct.  the location is mtd/mtd-user.h and it has nothing to do with glibc 
> or uClibc or any C library.  it is provided by your Linux headers package.  if 
> you dont have the header, then dont enable the applet.

Well, it is actually a bit strange.

I have these five subsirs in "sanitized headers": drm, mtd, rdma, sound, video
after I executed this in pristine linux-2.6.27.9 tree:

make ARCH=i386 CROSS_COMPILE=i486-linux-uclibc- defconfig
ln -s asm-x86 include/asm
make ARCH=i386 CROSS_COMPILE=i486-linux-uclibc- headers_install

Let's check where do we have mtd in resulting "sanitized headers":

# ls -l usr/include
drwxr-xr-x    2 root     root         1440 Dec 14 14:20 asm
drwxr-xr-x    2 root     root          376 Dec 14 14:20 asm-generic
drwxr-xr-x    2 root     root          392 Dec 14 14:20 drm
drwxr-xr-x   19 root     root        10192 Dec 14 14:20 linux <=== NOT INSIDE linux/
drwxr-xr-x    2 root     root          240 Dec 14 14:20 mtd <===== BUT HERE
drwxr-xr-x    2 root     root           80 Dec 14 14:20 rdma
drwxr-xr-x    2 root     root          312 Dec 14 14:20 sound
drwxr-xr-x    2 root     root          128 Dec 14 14:20 video

And linux/ subdir does NOT have mtd directory,
even though "unsanitized" header do: tarball has both
    include/mtd/
and include/linux/mtd/

I just tested latest (linux-2.6.29.1) and it's the same there.

So, what am I doing wrong? Is it wrong to produce sanitized kernel headers
as described above?
--
vda


More information about the busybox mailing list