On Wed, Sep 24, 2008 at 7:05 AM, Daniel Gollub <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]>
>> > 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:
>
> [EMAIL PROTECTED]:~/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

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to