* Re: [LTP] ltp getdents syscalls testcases and 2.6.27-rcX [not found] ` <1222260480.5395.17.camel-NRFfyExJdYpgXGGE5LP+UZlqa2bBAFbm0E9HWUfgJXw@public.gmane.org> @ 2008-09-24 14:05 ` Daniel Gollub [not found] ` <200809241605.24925.dgollub-l3A5Bk7waGM@public.gmane.org> 0 siblings, 1 reply; 4+ messages in thread From: Daniel Gollub @ 2008-09-24 14:05 UTC (permalink / raw) To: subrata-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, Garrett Cooper, mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w Cc: ltp-list-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Adrian Bunk, linux-man-u79uwXL29TY76Z2rM5mHXA 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-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> > > 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 ); -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 4+ messages in thread
[parent not found: <200809241605.24925.dgollub-l3A5Bk7waGM@public.gmane.org>]
* Re: [LTP] ltp getdents syscalls testcases and 2.6.27-rcX [not found] ` <200809241605.24925.dgollub-l3A5Bk7waGM@public.gmane.org> @ 2008-09-25 8:08 ` Garrett Cooper [not found] ` <364299f40809250108x714a5ba7ob31fb89b0d7c195c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 0 siblings, 1 reply; 4+ messages in thread From: Garrett Cooper @ 2008-09-25 8:08 UTC (permalink / raw) To: Daniel Gollub Cc: subrata-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w, ltp-list-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Adrian Bunk, linux-man-u79uwXL29TY76Z2rM5mHXA On Wed, Sep 24, 2008 at 7:05 AM, Daniel Gollub <dgollub-l3A5Bk7waGM@public.gmane.org> 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-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> >> > 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-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <364299f40809250108x714a5ba7ob31fb89b0d7c195c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* Re: [LTP] ltp getdents syscalls testcases and 2.6.27-rcX [not found] ` <364299f40809250108x714a5ba7ob31fb89b0d7c195c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2008-09-25 9:17 ` Daniel Gollub [not found] ` <200809251117.30959.dgollub-l3A5Bk7waGM@public.gmane.org> 0 siblings, 1 reply; 4+ messages in thread From: Daniel Gollub @ 2008-09-25 9:17 UTC (permalink / raw) To: Garrett Cooper, mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w Cc: subrata-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, ltp-list-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Adrian Bunk, linux-man-u79uwXL29TY76Z2rM5mHXA On Thursday 25 September 2008 10:08:28 Garrett Cooper wrote: > >> 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 > > > > --- > > [...] > I find it interesting because I honestly don't remember mentioning this > :D.. > > Would you perhaps mean linux/signalfd.h vs sys/signalfd.h? I don't know either - i was just refering to Subrata's reply... Anyway, asm/page.h is really gone: commit ed7b1889da256977574663689b598d88950bbd23 Author: Kirill A. Shutemov <k.shutemov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> Date: Thu Feb 7 00:15:56 2008 -0800 Unexport asm/page.h Do not export asm/page.h during make headers_install. This removes PAGE_SIZE from userspace headers. Garret, just to refresh your memory ..... ;) http://article.gmane.org/gmane.linux.ltp/4873 best regards, Daniel --- diff --git a/man2/swapon.2 b/man2/swapon.2 index 4c7008a..2a22be7 100644 --- a/man2/swapon.2 +++ b/man2/swapon.2 @@ -40,8 +40,6 @@ swapon, swapoff \- start/stop swapping to file/device .SH SYNOPSIS .B #include <unistd.h> .br -.B #include <asm/page.h> /* to find PAGE_SIZE */ -.br .B #include <sys/swap.h> .sp .BI "int swapon(const char *" path ", int " swapflags ); -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 4+ messages in thread
[parent not found: <200809251117.30959.dgollub-l3A5Bk7waGM@public.gmane.org>]
* Re: [LTP] ltp getdents syscalls testcases and 2.6.27-rcX [not found] ` <200809251117.30959.dgollub-l3A5Bk7waGM@public.gmane.org> @ 2008-09-28 0:57 ` Garrett Cooper 0 siblings, 0 replies; 4+ messages in thread From: Garrett Cooper @ 2008-09-28 0:57 UTC (permalink / raw) To: Daniel Gollub Cc: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w, subrata-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8, ltp-list-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Adrian Bunk, linux-man-u79uwXL29TY76Z2rM5mHXA On Thu, Sep 25, 2008 at 2:17 AM, Daniel Gollub <dgollub-l3A5Bk7waGM@public.gmane.org> wrote: > On Thursday 25 September 2008 10:08:28 Garrett Cooper wrote: >> >> 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 >> > >> > --- >> > > [...] > > >> I find it interesting because I honestly don't remember mentioning this >> :D.. >> >> Would you perhaps mean linux/signalfd.h vs sys/signalfd.h? > > I don't know either - i was just refering to Subrata's reply... > Anyway, asm/page.h is really gone: > > commit ed7b1889da256977574663689b598d88950bbd23 > Author: Kirill A. Shutemov <k.shutemov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > Date: Thu Feb 7 00:15:56 2008 -0800 > > Unexport asm/page.h > > Do not export asm/page.h during make headers_install. This removes > PAGE_SIZE > from userspace headers. > > > > Garret, just to refresh your memory ..... ;) > http://article.gmane.org/gmane.linux.ltp/4873 > > > best regards, > Daniel > > --- > > diff --git a/man2/swapon.2 b/man2/swapon.2 > index 4c7008a..2a22be7 100644 > --- a/man2/swapon.2 > +++ b/man2/swapon.2 > @@ -40,8 +40,6 @@ swapon, swapoff \- start/stop swapping to file/device > .SH SYNOPSIS > .B #include <unistd.h> > .br > -.B #include <asm/page.h> /* to find PAGE_SIZE */ > -.br > .B #include <sys/swap.h> > .sp > .BI "int swapon(const char *" path ", int " swapflags ); Ah, yes... it's been a few months and unfortunately I have so much correspondence fly by my email boxes it's hard to keep track of what I've all said... my apologies. The issue with all of this stuff, is that while we are implementing some decent logic, we're unfortunately duplicating a lot of what's contained within autotools for cross compilation, header finding, etc. That being said though, what's being done is rather lightweight compared to using autotools and I've seen a variety of complaints from various forum/mailing list posts about the lack of cross-compilation support with autotools (Mike Fry... could hint more info about this as he was in a mailing list post I saw a while back -- will look up the URI if needed). What should be done (IMHO) is more tedious, but if done properly this should only need to be done once: 1. Map out versions where header definitions are pushed from the kernel sources to glibc (because every single time a header moves it appears to go from kernel.org's stuff to gnu.org's stuff). 2. Implement a SINGLE compile-time check to determine what the kernel vs glibc version is from the provided sources, and if they pass some level of muster, then include the appropriate header. The result should be contained within a top-level .mk file and with appropriate CPPFLAGS passed to gcc, one can determine whether or not header A or header B should be used. I just got the LTP sources from CVS, I'm going to apply my makefile changes again, shift everything, repost my results, and we'll discuss this topic again as it's an important TODO item (IMHO). -Garrett -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2008-09-28 0:57 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <200809161427.36373.dgollub@suse.de>
[not found] ` <1222260480.5395.17.camel@subratamodak.linux.ibm.com>
[not found] ` <1222260480.5395.17.camel-NRFfyExJdYpgXGGE5LP+UZlqa2bBAFbm0E9HWUfgJXw@public.gmane.org>
2008-09-24 14:05 ` [LTP] ltp getdents syscalls testcases and 2.6.27-rcX Daniel Gollub
[not found] ` <200809241605.24925.dgollub-l3A5Bk7waGM@public.gmane.org>
2008-09-25 8:08 ` Garrett Cooper
[not found] ` <364299f40809250108x714a5ba7ob31fb89b0d7c195c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-09-25 9:17 ` Daniel Gollub
[not found] ` <200809251117.30959.dgollub-l3A5Bk7waGM@public.gmane.org>
2008-09-28 0:57 ` Garrett Cooper
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox