On Wed, Sep 24, 2008 at 7:05 AM, Daniel Gollub <dgollub@xxxxxxx> wrote: > On Wednesday 24 September 2008 14:48:00 Subrata Modak wrote: >> On Tue, 2008-09-16 at 14:27 +0200, Daniel Gollub wrote: >> > Hi, >> > >> > with 2.6.27-rc1(?) linux/dirent.h got removed Kbuild headers_install >> > targe and dirent struct got removed: >> > >> > >> > commit cf6ae8b50e0ee3f764392dadd1970e3f03c40773 >> > Author: Adrian Bunk <bunk@xxxxxxxxxx> >> > Date: Fri Jul 25 01:46:46 2008 -0700 >> > >> > remove the in-kernel struct dirent{,64} >> > >> > The kernel struct dirent{,64} were different from the ones in >> > userspace. >> > >> > Even worse, we exported the kernel ones to userspace. >> > >> > But after the fat usages are fixed we can remove the conflicting >> > kernel versions. >> > >> > >> > This broke the build of some LTP syscalls testcases for "getdents", since >> > the <linux/dirent.h> include is missing and the "internal" dirent struct >> > get/got used in: >> > >> > testcases/kernel/syscalls/getdents/getdents01.c >> > testcases/kernel/syscalls/getdents/getdents03.c >> > testcases/kernel/syscalls/getdents/getdents02.c >> > testcases/kernel/syscalls/getdents/getdents04.c >> > >> > http://ltp.cvs.sourceforge.net/ltp/ltp/testcases/kernel/syscalls/getdents >> >/ >> > >> > Is it safe to use the userspace dirent struct from <dirent.h> to fix the >> > build of this? Or what should be used for testing the getdents interface >> > instead? >> >> Yes, it is. There are numerous test cases in LTP which use: >> struct dirent, >> by including /usr/include/dirent.h. The interesting part is, this guy >> (/usr/include/dirent.h) in turn includes /usr/include/bits/dirent.h, >> where the definition of struct resides. Following is the patch which >> solves this issue along with page.h header file removal from 2.6.25 >> onwards, reported by Garret earlier. > > Tried the patch - ltp build with 2.6.27-rc linux headers sucessfully. > Thanks for the info and the patch! > > Btw. man pages need to get also updated ... there are some pages which still > mention <linux/dirent.h>. > > Garret, with 2.6.25 <asm/page.h> got removed - right? > If so swapon(2) man page needs also get fixed: > > dgollub@marvin:~/projects/man-pages> grep -r "asm\/page.h" * > man2/swapon.2:.B #include <asm/page.h> /* to find PAGE_SIZE */ > > best regards, > Daniel > > --- > > diff --git a/man2/getdents.2 b/man2/getdents.2 > index bd9d261..eb13258 100644 > --- a/man2/getdents.2 > +++ b/man2/getdents.2 > @@ -30,8 +30,8 @@ getdents \- get directory entries > .SH SYNOPSIS > .nf > .B #include <unistd.h> > +.B #include <dirent.h> > .B #include <linux/types.h> > -.B #include <linux/dirent.h> > .B #include <linux/unistd.h> > .B #include <errno.h> > > diff --git a/man2/readdir.2 b/man2/readdir.2 > index a757da1..b831320 100644 > --- a/man2/readdir.2 > +++ b/man2/readdir.2 > @@ -30,8 +30,8 @@ > readdir \- read directory entry > .SH SYNOPSIS > .nf > +.B #include <dirent.h> > .B #include <linux/types.h> > -.B #include <linux/dirent.h> > .sp > .BI "int readdir(unsigned int " fd ", struct dirent *" dirp "," > .BI " unsigned int " count ); I find it interesting because I honestly don't remember mentioning this :D.. Would you perhaps mean linux/signalfd.h vs sys/signalfd.h? -Garrett -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html