All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/2] linux-user: fix build error against older glibcs
@ 2009-06-09 21:26 Eduardo Habkost
  2009-06-09 21:26 ` [Qemu-devel] [PATCH 1/2] linux-user/syscall.c: define _ATFILE_SOURCE Eduardo Habkost
  2009-06-09 21:26 ` [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure Eduardo Habkost
  0 siblings, 2 replies; 22+ messages in thread
From: Eduardo Habkost @ 2009-06-09 21:26 UTC (permalink / raw)
  To: Anthony Liguori, Glauber Costa; +Cc: qemu-devel

This series fixes the following build error on older glibc versions (on my
case, version 2.5-34 from RHEL-5).

   LINK  x86_64-linux-user/qemu-x86_64
 syscall.o: In function `sys_utimensat':
 /home/ehabkost/code/qemu/qemu/linux-user/syscall.c:419: undefined reference to `utimensat'
 collect2: ld returned 1 exit status
 make[1]: *** [qemu-x86_64] Error 1
 make: *** [subdir-x86_64-linux-user] Error 2

This happens because the older glibc has most xxxat() functions available, but
not utimensat(). utimensat() needs a separate test on configure.

---
Eduardo Habkost (2):
  linux-user/syscall.c: define _ATFILE_SOURCE
  check for utimensat() availability on configure

 configure            |   24 ++++++++++++++++++++++++
 linux-user/syscall.c |   26 ++++++++++++++++++--------
 2 files changed, 42 insertions(+), 8 deletions(-)

-- 
Eduardo

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Qemu-devel] [PATCH 1/2] linux-user/syscall.c: define _ATFILE_SOURCE
  2009-06-09 21:26 [Qemu-devel] [PATCH 0/2] linux-user: fix build error against older glibcs Eduardo Habkost
@ 2009-06-09 21:26 ` Eduardo Habkost
  2009-06-09 21:26 ` [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure Eduardo Habkost
  1 sibling, 0 replies; 22+ messages in thread
From: Eduardo Habkost @ 2009-06-09 21:26 UTC (permalink / raw)
  To: Anthony Liguori, Glauber Costa; +Cc: qemu-devel

Needed to make sure the xxxat() functions are available.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 linux-user/syscall.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 59c91f8..d851edc 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -18,6 +18,7 @@
  *  Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
  *  MA 02110-1301, USA.
  */
+#define _ATFILE_SOURCE
 #include <stdlib.h>
 #include <stdio.h>
 #include <stdarg.h>
-- 
1.6.3.rc4.29.g8146

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure
  2009-06-09 21:26 [Qemu-devel] [PATCH 0/2] linux-user: fix build error against older glibcs Eduardo Habkost
  2009-06-09 21:26 ` [Qemu-devel] [PATCH 1/2] linux-user/syscall.c: define _ATFILE_SOURCE Eduardo Habkost
@ 2009-06-09 21:26 ` Eduardo Habkost
  2009-06-09 22:06   ` Arnaud Patard
  1 sibling, 1 reply; 22+ messages in thread
From: Eduardo Habkost @ 2009-06-09 21:26 UTC (permalink / raw)
  To: Anthony Liguori, Glauber Costa; +Cc: qemu-devel

Some glibc versions don't have utimensat() available, but have other xxxat()
functions. Make a separated check for utimensat() to make sure we can compile
linux-user against some older glibc versions.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 configure            |   24 ++++++++++++++++++++++++
 linux-user/syscall.c |   25 +++++++++++++++++--------
 2 files changed, 41 insertions(+), 8 deletions(-)

diff --git a/configure b/configure
index 89e7f53..a5ea78f 100755
--- a/configure
+++ b/configure
@@ -1254,6 +1254,27 @@ EOF
   fi
 fi
 
+# Check for utimensat() separatedly, because some glibc versions
+# have unlinkat() but not utimensat() available
+utimensat=no
+if [ "$linux_user" = "yes" -a "$atfile" = "yes" ] ; then
+  cat > $TMPC << EOF
+#define _ATFILE_SOURCE
+#include <sys/stat.h>
+#include <fcntl.h>
+
+int
+main(void)
+{
+	struct timespec times[2];
+	return (utimensat(AT_FDCWD, "nonexistent_file", times, 0));
+}
+EOF
+  if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
+    utimensat=yes
+  fi
+fi
+
 # Check for inotify functions when we are building linux-user
 # emulator.  This is done because older glibc versions don't
 # have syscall stubs for these implemented.  In that case we
@@ -1673,6 +1694,9 @@ fi
 if test "$atfile" = "yes" ; then
   echo "#define CONFIG_ATFILE 1" >> $config_h
 fi
+if test "$utimensat" = "yes" ; then
+  echo "#define CONFIG_UTIMENSAT 1" >> $config_h
+fi
 if test "$inotify" = "yes" ; then
   echo "#define CONFIG_INOTIFY 1" >> $config_h
 fi
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index d851edc..42e2b77 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -413,13 +413,6 @@ static int sys_unlinkat(int dirfd, const char *pathname, int flags)
   return (unlinkat(dirfd, pathname, flags));
 }
 #endif
-#ifdef TARGET_NR_utimensat
-static int sys_utimensat(int dirfd, const char *pathname,
-    const struct timespec times[2], int flags)
-{
-  return (utimensat(dirfd, pathname, times, flags));
-}
-#endif
 #else /* !CONFIG_ATFILE */
 
 /*
@@ -478,12 +471,28 @@ _syscall3(int,sys_symlinkat,const char *,oldpath,
 #if defined(TARGET_NR_unlinkat) && defined(__NR_unlinkat)
 _syscall3(int,sys_unlinkat,int,dirfd,const char *,pathname,int,flags)
 #endif
+
+#endif /* CONFIG_ATFILE */
+
+
+#ifdef CONFIG_UTIMENSAT
+
+#ifdef TARGET_NR_utimensat
+static int sys_utimensat(int dirfd, const char *pathname,
+    const struct timespec times[2], int flags)
+{
+  return (utimensat(dirfd, pathname, times, flags));
+}
+#endif
+
+#else /* !CONFIG_UTIMENSAT */
 #if defined(TARGET_NR_utimensat) && defined(__NR_utimensat)
 _syscall4(int,sys_utimensat,int,dirfd,const char *,pathname,
           const struct timespec *,tsp,int,flags)
 #endif
 
-#endif /* CONFIG_ATFILE */
+#endif /* CONFIG_UTIMENSAT */
+
 
 #ifdef CONFIG_INOTIFY
 #include <sys/inotify.h>
-- 
1.6.3.rc4.29.g8146

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure
  2009-06-09 21:26 ` [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure Eduardo Habkost
@ 2009-06-09 22:06   ` Arnaud Patard
  2009-06-10 14:12     ` Eduardo Habkost
  2009-06-10 15:03     ` Glauber Costa
  0 siblings, 2 replies; 22+ messages in thread
From: Arnaud Patard @ 2009-06-09 22:06 UTC (permalink / raw)
  To: Eduardo Habkost; +Cc: Glauber Costa, qemu-devel

Eduardo Habkost <ehabkost@redhat.com> writes:

Hi Eduardo,

> Some glibc versions don't have utimensat() available, but have other xxxat()
> functions. Make a separated check for utimensat() to make sure we can compile
> linux-user against some older glibc versions.

Why didn't you take the patches available in this thread
http://lists.gnu.org/archive/html/qemu-devel/2009-04/msg01290.html ?

afaik, they can also be found in maemo's qemu git tree (and sent again
later to the mailing list)

[...]

> +#ifdef CONFIG_UTIMENSAT
> +
> +#ifdef TARGET_NR_utimensat
> +static int sys_utimensat(int dirfd, const char *pathname,
> +    const struct timespec times[2], int flags)
> +{
> +  return (utimensat(dirfd, pathname, times, flags));
> +}

As you'll see when reading the thread I mentionned, this is broken.

Regards,
Arnaud

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure
  2009-06-09 22:06   ` Arnaud Patard
@ 2009-06-10 14:12     ` Eduardo Habkost
  2009-06-10 14:39       ` Arnaud Patard
  2009-06-10 16:07       ` Riku Voipio
  2009-06-10 15:03     ` Glauber Costa
  1 sibling, 2 replies; 22+ messages in thread
From: Eduardo Habkost @ 2009-06-10 14:12 UTC (permalink / raw)
  To: Arnaud Patard; +Cc: Glauber Costa, qemu-devel

On Wed, Jun 10, 2009 at 12:06:27AM +0200, Arnaud Patard wrote:
> Eduardo Habkost <ehabkost@redhat.com> writes:
> 
> Hi Eduardo,
> 
> > Some glibc versions don't have utimensat() available, but have other xxxat()
> > functions. Make a separated check for utimensat() to make sure we can compile
> > linux-user against some older glibc versions.
> 
> Why didn't you take the patches available in this thread
> http://lists.gnu.org/archive/html/qemu-devel/2009-04/msg01290.html ?

Because it is not included on the qemu tree.

> 
> afaik, they can also be found in maemo's qemu git tree (and sent again
> later to the mailing list)

Why is it not included, if it is a better fix?


> 
> [...]
> 
> > +#ifdef CONFIG_UTIMENSAT
> > +
> > +#ifdef TARGET_NR_utimensat
> > +static int sys_utimensat(int dirfd, const char *pathname,
> > +    const struct timespec times[2], int flags)
> > +{
> > +  return (utimensat(dirfd, pathname, times, flags));
> > +}
> 
> As you'll see when reading the thread I mentionned, this is broken.

I don't see why it is broken, unless current qemu code is broken too. I
just changed it to use the !CONFIG_ATFILE sys_utimensat() implementation
(that was already present on the code) if glibc doesn't provide
utimensat(). What do you suggest instead?

-- 
Eduardo

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure
  2009-06-10 14:12     ` Eduardo Habkost
@ 2009-06-10 14:39       ` Arnaud Patard
  2009-06-10 19:10         ` Eduardo Habkost
  2009-06-10 16:07       ` Riku Voipio
  1 sibling, 1 reply; 22+ messages in thread
From: Arnaud Patard @ 2009-06-10 14:39 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: Glauber Costa, qemu-devel

Eduardo Habkost <ehabkost@redhat.com> writes:
Hi,

> On Wed, Jun 10, 2009 at 12:06:27AM +0200, Arnaud Patard wrote:
>> Eduardo Habkost <ehabkost@redhat.com> writes:
>> 
>> Hi Eduardo,
>> 
>> > Some glibc versions don't have utimensat() available, but have other xxxat()
>> > functions. Make a separated check for utimensat() to make sure we can compile
>> > linux-user against some older glibc versions.
>> 
>> Why didn't you take the patches available in this thread
>> http://lists.gnu.org/archive/html/qemu-devel/2009-04/msg01290.html ?
>
> Because it is not included on the qemu tree.
>
>> 
>> afaik, they can also be found in maemo's qemu git tree (and sent again
>> later to the mailing list)
>
> Why is it not included, if it is a better fix?

I don't have the reason, only guesses. It looks like linux-user is
getting a lot less attention than full system emulation, which makes
patches living in the mailing list waiting for someone to merge them. I
hope I'm wrong on that and that such fixes will be committed soon :)

>
>> 
>> [...]
>> 
>> > +#ifdef CONFIG_UTIMENSAT
>> > +
>> > +#ifdef TARGET_NR_utimensat
>> > +static int sys_utimensat(int dirfd, const char *pathname,
>> > +    const struct timespec times[2], int flags)
>> > +{
>> > +  return (utimensat(dirfd, pathname, times, flags));
>> > +}
>> 
>> As you'll see when reading the thread I mentionned, this is broken.
>
> I don't see why it is broken, unless current qemu code is broken
> too. I

current qemu code is broken too.

> just changed it to use the !CONFIG_ATFILE sys_utimensat() implementation
> (that was already present on the code) if glibc doesn't provide
> utimensat(). What do you suggest instead?

glibc utimensat is not exactly the syscall, a test on some parameters
has been added. There's code to handle this in the patch I was talking
about.

Arnaud

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure
  2009-06-09 22:06   ` Arnaud Patard
  2009-06-10 14:12     ` Eduardo Habkost
@ 2009-06-10 15:03     ` Glauber Costa
  2009-06-10 21:53       ` Riku Voipio
  1 sibling, 1 reply; 22+ messages in thread
From: Glauber Costa @ 2009-06-10 15:03 UTC (permalink / raw)
  To: Arnaud Patard; +Cc: Eduardo Habkost, qemu-devel

On Wed, Jun 10, 2009 at 12:06:27AM +0200, Arnaud Patard wrote:
> Eduardo Habkost <ehabkost@redhat.com> writes:
> 
> Hi Eduardo,
> 
> > Some glibc versions don't have utimensat() available, but have other xxxat()
> > functions. Make a separated check for utimensat() to make sure we can compile
> > linux-user against some older glibc versions.
> 
> Why didn't you take the patches available in this thread
> http://lists.gnu.org/archive/html/qemu-devel/2009-04/msg01290.html ?
> 
> afaik, they can also be found in maemo's qemu git tree (and sent again
> later to the mailing list)
out of curiosity, what are the kind of things that lives in that tree?
What prevents it to be included in mainstream qemu?

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure
  2009-06-10 14:12     ` Eduardo Habkost
  2009-06-10 14:39       ` Arnaud Patard
@ 2009-06-10 16:07       ` Riku Voipio
  2009-06-10 16:20         ` Glauber Costa
  1 sibling, 1 reply; 22+ messages in thread
From: Riku Voipio @ 2009-06-10 16:07 UTC (permalink / raw)
  To: Arnaud Patard, Anthony Liguori, Glauber Costa, qemu-devel

On Wed, Jun 10, 2009 at 11:12:55AM -0300, Eduardo Habkost wrote:
> > afaik, they can also be found in maemo's qemu git tree (and sent again
> > later to the mailing list)

> Why is it not included, if it is a better fix?

because mainline qemu is lacking a linux-user maintainer.

The maemo tree's linux-user-for-upstream branch hasn't been updated either
for a while, I'll do so tonight.

> > As you'll see when reading the thread I mentionned, this is broken.

> I don't see why it is broken, unless current qemu code is broken too. I
> just changed it to use the !CONFIG_ATFILE sys_utimensat() implementation
> (that was already present on the code) if glibc doesn't provide
> utimensat(). What do you suggest instead?

As can be deduced from the thread, yes the current qemu code is broken.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure
  2009-06-10 16:07       ` Riku Voipio
@ 2009-06-10 16:20         ` Glauber Costa
  2009-06-10 16:30           ` Arnaud Patard
  0 siblings, 1 reply; 22+ messages in thread
From: Glauber Costa @ 2009-06-10 16:20 UTC (permalink / raw)
  To: Riku Voipio; +Cc: Arnaud Patard, qemu-devel

On Wed, Jun 10, 2009 at 07:07:42PM +0300, Riku Voipio wrote:
> On Wed, Jun 10, 2009 at 11:12:55AM -0300, Eduardo Habkost wrote:
> > > afaik, they can also be found in maemo's qemu git tree (and sent again
> > > later to the mailing list)
> 
> > Why is it not included, if it is a better fix?
> 
> because mainline qemu is lacking a linux-user maintainer.
I believe if you can guarantee (through proper testing) the stability of maemo
tree, and poke for review the specific parts that may affect the rest ot the world,
then it should be fine to just pull it.

That's what git allows for, we don't need an "official" maintainer in the commit
access sense. Just a trustworthy tree we can pull from.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure
  2009-06-10 16:20         ` Glauber Costa
@ 2009-06-10 16:30           ` Arnaud Patard
  2009-06-10 16:56             ` Glauber Costa
  0 siblings, 1 reply; 22+ messages in thread
From: Arnaud Patard @ 2009-06-10 16:30 UTC (permalink / raw)
  To: Glauber Costa; +Cc: Riku Voipio, qemu-devel

Glauber Costa <glommer@redhat.com> writes:

> On Wed, Jun 10, 2009 at 07:07:42PM +0300, Riku Voipio wrote:
>> On Wed, Jun 10, 2009 at 11:12:55AM -0300, Eduardo Habkost wrote:
>> > > afaik, they can also be found in maemo's qemu git tree (and sent again
>> > > later to the mailing list)
>> 
>> > Why is it not included, if it is a better fix?
>> 
>> because mainline qemu is lacking a linux-user maintainer.
> I believe if you can guarantee (through proper testing) the stability of maemo
> tree, and poke for review the specific parts that may affect the rest ot the world,
> then it should be fine to just pull it.

At least, this would be better than what we have currently. Please note
also that "proper testing" is hard imho. It depends also on host/guest
systems used to test.

>
> That's what git allows for, we don't need an "official" maintainer in the commit
> access sense. Just a trustworthy tree we can pull from.

Having an "official" maintainer means having someone being able to give
his final word if people disagree on how to fix a bug.


Arnaud

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure
  2009-06-10 16:30           ` Arnaud Patard
@ 2009-06-10 16:56             ` Glauber Costa
  2009-06-10 22:05               ` Riku Voipio
  0 siblings, 1 reply; 22+ messages in thread
From: Glauber Costa @ 2009-06-10 16:56 UTC (permalink / raw)
  To: Arnaud Patard; +Cc: Riku Voipio, qemu-devel

On Wed, Jun 10, 2009 at 06:30:49PM +0200, Arnaud Patard wrote:
> Glauber Costa <glommer@redhat.com> writes:
> 
> > On Wed, Jun 10, 2009 at 07:07:42PM +0300, Riku Voipio wrote:
> >> On Wed, Jun 10, 2009 at 11:12:55AM -0300, Eduardo Habkost wrote:
> >> > > afaik, they can also be found in maemo's qemu git tree (and sent again
> >> > > later to the mailing list)
> >> 
> >> > Why is it not included, if it is a better fix?
> >> 
> >> because mainline qemu is lacking a linux-user maintainer.
> > I believe if you can guarantee (through proper testing) the stability of maemo
> > tree, and poke for review the specific parts that may affect the rest ot the world,
> > then it should be fine to just pull it.
> 
> At least, this would be better than what we have currently. Please note
> also that "proper testing" is hard imho. It depends also on host/guest
> systems used to test.
it is hard for everybody, not just qemu user. Since you guys are the main
user of it, if you are happy with the state of things, and it is isolated enough from
the rest of qemu not to break it very frequently, we should be fine.

> 
> >
> > That's what git allows for, we don't need an "official" maintainer in the commit
> > access sense. Just a trustworthy tree we can pull from.
> 
> Having an "official" maintainer means having someone being able to give
> his final word if people disagree on how to fix a bug.
One of you should step up and do it.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure
  2009-06-10 14:39       ` Arnaud Patard
@ 2009-06-10 19:10         ` Eduardo Habkost
  2009-06-10 21:48           ` Riku Voipio
  0 siblings, 1 reply; 22+ messages in thread
From: Eduardo Habkost @ 2009-06-10 19:10 UTC (permalink / raw)
  To: Arnaud Patard (Rtp); +Cc: Glauber Costa, qemu-devel

Excerpts from Arnaud Patard (Rtp)'s message of Wed Jun 10 11:39:25 -0300 2009:
> Eduardo Habkost <ehabkost@redhat.com> writes:
<snip>
> >> 
> >> afaik, they can also be found in maemo's qemu git tree (and sent again
> >> later to the mailing list)
> >
> > Why is it not included, if it is a better fix?
> 
> I don't have the reason, only guesses. It looks like linux-user is
> getting a lot less attention than full system emulation, which makes
> patches living in the mailing list waiting for someone to merge them. I
> hope I'm wrong on that and that such fixes will be committed soon :)

I hope so.  :)

> 
> >
> >> 
> >> [...]
> >> 
> >> > +#ifdef CONFIG_UTIMENSAT
> >> > +
> >> > +#ifdef TARGET_NR_utimensat
> >> > +static int sys_utimensat(int dirfd, const char *pathname,
> >> > +    const struct timespec times[2], int flags)
> >> > +{
> >> > +  return (utimensat(dirfd, pathname, times, flags));
> >> > +}
> >> 
> >> As you'll see when reading the thread I mentionned, this is broken.
> >
> > I don't see why it is broken, unless current qemu code is broken
> > too. I
> 
> current qemu code is broken too.

Now this makes sense.

> 
> > just changed it to use the !CONFIG_ATFILE sys_utimensat() implementation
> > (that was already present on the code) if glibc doesn't provide
> > utimensat(). What do you suggest instead?
> 
> glibc utimensat is not exactly the syscall, a test on some parameters
> has been added. There's code to handle this in the patch I was talking
> about.

Understood. However, my patch addresses a different issue, that is the
case where the host system doesn't have utimensat() available. The point
here is to disable the code that uses utimensat() (be it broken or not)
on that case.

And the first patch is unrelated to that question: it is just a
correctness issue to make sure the xxxat() availability matches the
situation detected by ./configure (whose test code has #define
_ATFILE_SOURCE).
-- 
Eduardo

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure
  2009-06-10 19:10         ` Eduardo Habkost
@ 2009-06-10 21:48           ` Riku Voipio
  2009-06-10 22:09             ` Eduardo Habkost
  0 siblings, 1 reply; 22+ messages in thread
From: Riku Voipio @ 2009-06-10 21:48 UTC (permalink / raw)
  To: Eduardo Habkost; +Cc: Glauber Costa, qemu-devel, Arnaud Patard

On Wed, Jun 10, 2009 at 04:10:33PM -0300, Eduardo Habkost wrote:
> > glibc utimensat is not exactly the syscall, a test on some parameters
> > has been added. There's code to handle this in the patch I was talking
> > about.

> Understood. However, my patch addresses a different issue, that is the
> case where the host system doesn't have utimensat() available. The point
> here is to disable the code that uses utimensat() (be it broken or not)
> on that case.

> And the first patch is unrelated to that question: it is just a
> correctness issue to make sure the xxxat() availability matches the
> situation detected by ./configure (whose test code has #define
> _ATFILE_SOURCE).

You mean like this, in the same thread? :)

http://lists.gnu.org/archive/html/qemu-devel/2009-04/msg01324.html

However your other patch was useful, _ATFILE_SOURCE should be used in syscall.c to.
thanks, applied to the maemo tree.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure
  2009-06-10 15:03     ` Glauber Costa
@ 2009-06-10 21:53       ` Riku Voipio
  0 siblings, 0 replies; 22+ messages in thread
From: Riku Voipio @ 2009-06-10 21:53 UTC (permalink / raw)
  To: Glauber Costa, qemu-devel

On Wed, Jun 10, 2009 at 12:03:34PM -0300, Glauber Costa wrote:
> On Wed, Jun 10, 2009 at 12:06:27AM +0200, Arnaud Patard wrote:
> > afaik, they can also be found in maemo's qemu git tree (and sent again
> > later to the mailing list)

> out of curiosity, what are the kind of things that lives in that tree?
> What prevents it to be included in mainstream qemu?

This is the linux-user stuff just refreshed:

https://git.maemo.org/projects/qemu/gitweb?p=qemu;a=shortlog;h=refs/heads/linux-user-for-upstream

The master branch includes other stuff, such as omap3/beagleboard
emulation and some scratchbox hacks unwanted for upstream.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure
  2009-06-10 16:56             ` Glauber Costa
@ 2009-06-10 22:05               ` Riku Voipio
  2009-06-11  8:33                 ` Arnaud Patard
                                   ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: Riku Voipio @ 2009-06-10 22:05 UTC (permalink / raw)
  To: Glauber Costa; +Cc: qemu-devel

On Wed, Jun 10, 2009 at 01:56:40PM -0300, Glauber Costa wrote:
> > >> because mainline qemu is lacking a linux-user maintainer.
> > > I believe if you can guarantee (through proper testing) the stability of maemo
> > > tree, and poke for review the specific parts that may affect the rest ot the world,
> > > then it should be fine to just pull it.

> > At least, this would be better than what we have currently. Please note
> > also that "proper testing" is hard imho. It depends also on host/guest
> > systems used to test.

> it is hard for everybody, not just qemu user. Since you guys are the main
> user of it, if you are happy with the state of things, and it is isolated enough from
> the rest of qemu not to break it very frequently, we should be fine.

Generally we use tests from ltp testsuite since they have nice tests for most
syscalls. However, the testing is not quite systematic, an particularry combinations
of host/target glibc appear to create a mess..

That said, the changes are highly contained under linux-user/, in the current tree
there is only one patch (GUEST_BASE support) that touches outside parts.

> > Having an "official" maintainer means having someone being able to give
> > his final word if people disagree on how to fix a bug.

> One of you should step up and do it.

If nobody objects, I can.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure
  2009-06-10 21:48           ` Riku Voipio
@ 2009-06-10 22:09             ` Eduardo Habkost
  2009-06-11 15:14               ` Riku Voipio
  0 siblings, 1 reply; 22+ messages in thread
From: Eduardo Habkost @ 2009-06-10 22:09 UTC (permalink / raw)
  To: Riku Voipio; +Cc: Glauber Costa, qemu-devel, Arnaud Patard (Rtp)

Excerpts from Riku Voipio's message of Wed Jun 10 18:48:26 -0300 2009:
> On Wed, Jun 10, 2009 at 04:10:33PM -0300, Eduardo Habkost wrote:
> > > glibc utimensat is not exactly the syscall, a test on some parameters
> > > has been added. There's code to handle this in the patch I was talking
> > > about.
> 
> > Understood. However, my patch addresses a different issue, that is the
> > case where the host system doesn't have utimensat() available. The point
> > here is to disable the code that uses utimensat() (be it broken or not)
> > on that case.
> 
> > And the first patch is unrelated to that question: it is just a
> > correctness issue to make sure the xxxat() availability matches the
> > situation detected by ./configure (whose test code has #define
> > _ATFILE_SOURCE).
> 
> You mean like this, in the same thread? :)
> 
> http://lists.gnu.org/archive/html/qemu-devel/2009-04/msg01324.html

Yes.  :)

I saw the futimens() part, but I didn't see it was adding a new
configure test including utimensat(), on the first look.


> 
> However your other patch was useful, _ATFILE_SOURCE should be used in syscall.c
> to.
> thanks, applied to the maemo tree.

Cool. :)

Now, we really need to get the fixes from the maemo tree merged on the
master repository. How much have the trees diverged?
-- 
Eduardo

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure
  2009-06-10 22:05               ` Riku Voipio
@ 2009-06-11  8:33                 ` Arnaud Patard
  2009-06-11 15:09                   ` Riku Voipio
  2009-06-11 11:27                 ` [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure vibi sreenivasan
  2009-06-12 13:24                 ` vibi sreenivasan
  2 siblings, 1 reply; 22+ messages in thread
From: Arnaud Patard @ 2009-06-11  8:33 UTC (permalink / raw)
  To: Riku Voipio; +Cc: Glauber Costa, qemu-devel

Riku Voipio <riku.voipio@iki.fi> writes:
Hi,

> On Wed, Jun 10, 2009 at 01:56:40PM -0300, Glauber Costa wrote:
>> > >> because mainline qemu is lacking a linux-user maintainer.
>> > > I believe if you can guarantee (through proper testing) the stability of maemo
>> > > tree, and poke for review the specific parts that may affect the rest ot the world,
>> > > then it should be fine to just pull it.
>
>> > At least, this would be better than what we have currently. Please note
>> > also that "proper testing" is hard imho. It depends also on host/guest
>> > systems used to test.
>
>> it is hard for everybody, not just qemu user. Since you guys are the main
>> user of it, if you are happy with the state of things, and it is isolated enough from
>> the rest of qemu not to break it very frequently, we should be fine.
>
> Generally we use tests from ltp testsuite since they have nice tests for most
> syscalls. However, the testing is not quite systematic, an particularry combinations
> of host/target glibc appear to create a mess..

Do you have a list of the syscalls/ltp testcases you're testing ? I've
made a list, only wants to compare :)

>
> That said, the changes are highly contained under linux-user/, in the current tree
> there is only one patch (GUEST_BASE support) that touches outside parts.
>
>> > Having an "official" maintainer means having someone being able to give
>> > his final word if people disagree on how to fix a bug.
>
>> One of you should step up and do it.
>
> If nobody objects, I can.

I bet you have more time than me to work on qemu so that's
fine. Nevertheless, I can provide help if needed.


Arnaud

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure
  2009-06-10 22:05               ` Riku Voipio
  2009-06-11  8:33                 ` Arnaud Patard
@ 2009-06-11 11:27                 ` vibi sreenivasan
  2009-06-12 13:24                 ` vibi sreenivasan
  2 siblings, 0 replies; 22+ messages in thread
From: vibi sreenivasan @ 2009-06-11 11:27 UTC (permalink / raw)
  To: Riku Voipio; +Cc: Glauber Costa, qemu-devel

hi,

> That said, the changes are highly contained under linux-user/, in the current tree
> there is only one patch (GUEST_BASE support) that touches outside parts.
> 
> > > Having an "official" maintainer means having someone being able to give
> > > his final word if people disagree on how to fix a bug.
> 
> > One of you should step up and do it.
> 
> If nobody objects, I can.
> 
yes ,that i fine.

Thanks & Regards
vibi sreenivasan

> 
> 
> 
> 

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure
  2009-06-11  8:33                 ` Arnaud Patard
@ 2009-06-11 15:09                   ` Riku Voipio
  2009-06-12  8:30                     ` ltp vs linux-user (was: Re: [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure) Arnaud Patard
  0 siblings, 1 reply; 22+ messages in thread
From: Riku Voipio @ 2009-06-11 15:09 UTC (permalink / raw)
  To: Arnaud Patard; +Cc: Glauber Costa, qemu-devel

> > Generally we use tests from ltp testsuite since they have nice tests for most
> > syscalls. However, the testing is not quite systematic, an particularry combinations
> > of host/target glibc appear to create a mess..

> Do you have a list of the syscalls/ltp testcases you're testing ? I've
> made a list, only wants to compare :)

The ltp tests realated syscalls being added/modified in a patch. As said, there is
no systematic "these tests must get through" list used at the moment. perhaps we can
use your list as starters?

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure
  2009-06-10 22:09             ` Eduardo Habkost
@ 2009-06-11 15:14               ` Riku Voipio
  0 siblings, 0 replies; 22+ messages in thread
From: Riku Voipio @ 2009-06-11 15:14 UTC (permalink / raw)
  To: Eduardo Habkost; +Cc: Glauber Costa, qemu-devel

On Wed, Jun 10, 2009 at 07:09:56PM -0300, Eduardo Habkost wrote:
> Cool. :)

> Now, we really need to get the fixes from the maemo tree merged on the
> master repository. How much have the trees diverged?

The trees haven't really diverged, there is little development happening
in mainline linux-user/ code. The only problem I got when rebasing yesterday
was that microblaze port was added and the coredump support adding patch
broke building microblaze. Thus coredump patch needed slight adjusting.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* ltp vs linux-user (was: Re: [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure)
  2009-06-11 15:09                   ` Riku Voipio
@ 2009-06-12  8:30                     ` Arnaud Patard
  0 siblings, 0 replies; 22+ messages in thread
From: Arnaud Patard @ 2009-06-12  8:30 UTC (permalink / raw)
  To: Riku Voipio; +Cc: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 1226 bytes --]

Riku Voipio <riku.voipio@iki.fi> writes:

Hi,

>> > Generally we use tests from ltp testsuite since they have nice tests for most
>> > syscalls. However, the testing is not quite systematic, an particularry combinations
>> > of host/target glibc appear to create a mess..
>
>> Do you have a list of the syscalls/ltp testcases you're testing ? I've
>> made a list, only wants to compare :)
>
> The ltp tests realated syscalls being added/modified in a patch. As said, there is
> no systematic "these tests must get through" list used at the moment. perhaps we can
> use your list as starters?

Here is my list of syscalls tested. It's the same list as in
runtest/syscalls with the following tests disabled :

- clone*
- msgctl07
- profil101
- syslog*
- times03
- waitpid*

I've disabled them because they were blocking except for syslog
ones. The syslog ones were disabled because I didn't have any syslog
daemon in my chroot. I didn't look at the other tests but this can be
due to emulation bug or host bug. I need to run the same tests on the
host to be able to detect what's really due to qemu emulation.
(Please note that I was testing arm-linux-user on x86 host. I hope to
I'll find some time to do more tests).

Arnaud


[-- Attachment #2: list --]
[-- Type: application/octet-stream, Size: 22520 bytes --]

#DESCRIPTION:Kernel system calls
abort01 ulimit -c 1024;abort01

accept01 accept01
accept4_01 accept4_01

access01 access01
access02 access02
access03 access03
access04 access04
access05 access05

acct01 acct01
acct02 acct02

add_key01 add_key01
add_key02 add_key02

adjtimex01 adjtimex01
adjtimex02 adjtimex02

alarm01 alarm01
alarm02 alarm02
alarm03 alarm03
alarm05 alarm05
alarm06 alarm06
alarm07 alarm07

asyncio02 asyncio02

bind01 bind01
bind02 bind02

bdflush01 bdflush01

brk01 brk01

capget01 capget01
capget02 capget02

capset01 capset01
capset02 capset02

cacheflush01 cacheflush01

chdir01 chdir01
chdir01A symlink01 -T chdir01
chdir02 chdir02
chdir03 chdir03
chdir04 chdir04

chmod01 chmod01
chmod01A symlink01 -T chmod01
chmod02 chmod02
chmod03 chmod03
chmod04 chmod04
chmod05 chmod05
chmod06 chmod06
chmod07 chmod07

chown01 chown01
chown01_16 chown01_16
chown02 chown02
chown02_16 chown02_16
chown03 chown03
chown03_16 chown03_16
chown04 chown04
chown04_16 chown04_16
chown05 chown05
chown05_16 chown05_16

chroot01 chroot01
chroot02 chroot02
chroot03 chroot03
chroot04 chroot04

clock_getres01 clock_getres01
clock_nanosleep01 clock_nanosleep01
clock_nanosleep2_01 clock_nanosleep2_01

#clone01 clone01
#clone02 clone02
#clone03 clone03
#clone04 clone04
#clone05 clone05
#clone06 clone06
#clone07 clone07

close01 close01
close02 close02
close08 close08

confstr01 confstr01

connect01 connect01

creat01 creat01
creat03 creat03
creat04 creat04
creat05 creat05
creat06 creat06
creat07 creat07 -F $LTPROOT/testcases/bin/test1
creat08 creat08
creat09 creat09

dup01 dup01
dup02 dup02
dup03 dup03
dup04 dup04
dup05 dup05
dup06 dup06
dup07 dup07

dup201 dup201
dup202 dup202
dup203 dup203
dup204 dup204
dup205 dup205

dup3_01 dup3_01

epoll_create1_01 epoll_create1_01
epoll01 epoll-ltp

eventfd01 eventfd01

eventfd2_01 eventfd2_01
eventfd2_02 eventfd2_02

execl01 execl01
execle01 execle01
execlp01 execlp01

execv01 execv01
execve01 execve01
execve02 execve02 -F $LTPROOT/testcases/bin/test3
execve03 execve03
execve04 execve04 -F $LTPROOT/testcases/bin/test3
execve05 execve05 20 $LTPROOT/testcases/bin/execve05 $LTPROOT/testcases/bin/execve05 4
execvp01 execvp01

exit01 exit01
exit02 exit02

exit_group01 exit_group01

#faccessat test cases
faccessat01 faccessat01

#fallocate test cases
fallocate01 fallocate01
fallocate02 fallocate02
fallocate03 fallocate03

#posix_fadvise test cases
posix_fadvise01                      posix_fadvise01
posix_fadvise01_64                posix_fadvise01_64
posix_fadvise02                      posix_fadvise02
posix_fadvise02_64                posix_fadvise02_64
posix_fadvise03                      posix_fadvise03
posix_fadvise03_64                posix_fadvise03_64
posix_fadvise04                      posix_fadvise04
posix_fadvise04_64                posix_fadvise04_64

fchdir01 fchdir01
fchdir02 fchdir02
fchdir03 fchdir03

fchmod01 fchmod01
fchmod02 fchmod02
fchmod03 fchmod03
fchmod04 fchmod04
fchmod05 fchmod05
fchmod06 fchmod06
fchmod07 fchmod07

#fchmodat test cases
fchmodat01 fchmodat01

fchown01 fchown01
fchown01_16 fchown01_16
fchown02 fchown02
fchown02_16 fchown02_16
fchown03 fchown03
fchown03_16 fchown03_16
fchown04 fchown04
fchown04_16 fchown04_16
fchown05 fchown05
fchown05_16 fchown05_16

#fchownat test case
fchownat01 fchownat01

fcntl01 fcntl01
fcntl01_64 fcntl01_64
fcntl02 fcntl02
fcntl02_64 fcntl02_64
fcntl03 fcntl03
fcntl03_64 fcntl03_64
fcntl04 fcntl04
fcntl04_64 fcntl04_64
fcntl05 fcntl05
fcntl05_64 fcntl05_64
fcntl06 fcntl06
fcntl06_64 fcntl06_64
fcntl07 fcntl07
fcntl07_64 fcntl07_64
fcntl07B fcntl07B
fcntl07B_64 fcntl07B_64
fcntl08 fcntl08
fcntl08_64 fcntl08_64
fcntl09 fcntl09
fcntl09_64 fcntl09_64
fcntl10 fcntl10
fcntl10_64 fcntl10_64
fcntl11 fcntl11
fcntl11_64 fcntl11_64
fcntl12 fcntl12
fcntl12_64 fcntl12_64
fcntl13 fcntl13
fcntl13_64 fcntl13_64
fcntl14 fcntl14
fcntl14_64 fcntl14_64
fcntl15 fcntl15
fcntl15_64 fcntl15_64
fcntl16 fcntl16
fcntl16_64 fcntl16_64
fcntl17 fcntl17
fcntl17_64 fcntl17_64
fcntl18 fcntl18
fcntl18_64 fcntl18_64
fcntl19 fcntl19
fcntl19_64 fcntl19_64
fcntl20 fcntl20
fcntl20_64 fcntl20_64
fcntl21 fcntl21
fcntl21_64 fcntl21_64
fcntl22 fcntl22
fcntl22_64 fcntl22_64
fcntl23 fcntl23
fcntl23_64 fcntl23_64
fcntl24 fcntl24
fcntl24_64 fcntl24_64
fcntl25 fcntl25
fcntl25_64 fcntl25_64
fcntl26 fcntl26
fcntl26_64 fcntl26_64
fcntl27 fcntl27
fcntl27_64 fcntl27_64
fcntl28 fcntl28
fcntl28_64 fcntl28_64

fdatasync01 fdatasync01
fdatasync02 fdatasync02

flock01 flock01
flock02 flock02
flock03 flock03
flock04 flock04
flock05 flock05
flock06 flock06

fmtmsg01 fmtmsg01

fork01 fork01
fork02 fork02
fork03 fork03
fork04 fork04
fork05 fork05
fork06 fork06
fork07 fork07
fork08 fork08
fork09 fork09
fork10 fork10
fork11 fork11

fpathconf01 fpathconf01

fstat01 fstat01
fstat01_64 fstat01_64
fstat02 fstat02
fstat02_64 fstat02_64
fstat03 fstat03
fstat03_64 fstat03_64
fstat04 fstat04
fstat04_64 fstat04_64
fstat05 fstat05
fstat05_64 fstat05_64

#fstatat64/newfstatat test cases
fstatat01 fstatat01
fstatat01_64 fstatat01_64

fstatfs01 fstatfs01
fstatfs01_64 fstatfs01_64
fstatfs02 fstatfs02
fstatfs02_64 fstatfs02_64

fsync01 fsync01
fsync02 fsync02
fsync03 fsync03

ftruncate01 ftruncate01
ftruncate01_64 ftruncate01_64
ftruncate02 ftruncate02
ftruncate02_64 ftruncate02_64
ftruncate03 ftruncate03
ftruncate03_64 ftruncate03_64
ftruncate04 ftruncate.sh
ftruncate04_64 ftruncate_64.sh

#futimesat test cases
futimesat01 futimesat01

getcontext01 getcontext01

getcpu01 getcpu01

getcwd01 getcwd01
getcwd02 getcwd02
getcwd03 getcwd03

getdents01 getdents01
getdents01_64 getdents01_64
getdents02 getdents02
getdents02_64 getdents02_64
getdents03 getdents03
getdents03_64 getdents03_64
getdents04 getdents04
getdents04_64 getdents04_64

getdomainname01 getdomainname01

getdtablesize01 getdtablesize01

getegid01 getegid01
getegid01_16 getegid01_16
getegid02 getegid02
getegid02_16 getegid02_16

geteuid01 geteuid01
geteuid01_16 geteuid01_16

getgid01 getgid01
getgid01_16 getgid01_16
# getgid02 is moved to getegid.
# getgid02 getgid02
getgid03 getgid03
getgid03_16 getgid03_16

getgroups01 getgroups01
getgroups01_16 getgroups01_16
getgroups02 getgroups02
getgroups02_16 getgroups02_16
getgroups03 getgroups03
getgroups03_16 getgroups03_16
getgroups04 getgroups04
getgroups04_16 getgroups04_16

gethostid01 gethostid01

gethostname01 gethostname01

getitimer01 getitimer01
getitimer02 getitimer02
getitimer03 getitimer03

getpagesize01 getpagesize01

getpeername01 getpeername01

getpgid01 getpgid01
getpgid02 getpgid02

getpgrp01 getpgrp01

getpid01 getpid01
getpid02 getpid02

getppid01 getppid01
getppid02 getppid02

getpriority01 getpriority01
getpriority02 getpriority02

getresgid01 getresgid01
getresgid02 getresgid02
getresgid03 getresgid03

getresuid01 getresuid01
getresuid02 getresuid02
getresuid03 getresuid03

getrlimit01 getrlimit01
getrlimit02 getrlimit02

get_mempolicy01 get_mempolicy01
get_robust_list01 get_robust_list01

getrusage01 getrusage01
getrusage02 getrusage02

getsid01 getsid01
getsid02 getsid02

getsockname01 getsockname01

getsockopt01 getsockopt01

gettid01 gettid01

gettimeofday01 gettimeofday01
gettimeofday02 gettimeofday02

getuid01 getuid01
getuid01_16 getuid01_16
getuid02 getuid02
getuid02_16 getuid02_16
getuid03 getuid03
getuid03_16 getuid03_16

#Needs tty device.
#ioctl01 ioctl01 -D /dev/tty0
#ioctl02 ioctl02 -D /dev/tty0

# Introducing ioctl tests for all /dev/tty* devices
ioctl01_02   test_ioctl
ioctl03      ioctl03

inotify_init1_01 inotify_init1_01
inotify_init1_02 inotify_init1_02

inotify01 inotify01
inotify02 inotify02
inotify03 inotify03 -D DEVICE -T DEVICE_FS_TYPE

ioperm01 ioperm01
ioperm02 ioperm02

iopl01 iopl01
iopl02 iopl02

io_cancel01 run-io_cancel.sh
io_destroy01 run-io_destroy.sh
io_getevents01 run-io_getevents.sh
io_setup01 run-io_setup.sh
io_submit01 run-io_submit.sh

keyctl01 keyctl01

kill01 kill01
kill02 kill02
kill03 kill03
kill04 kill04
kill05 kill05
kill06 kill06
kill07 kill07
kill08 kill08
kill09 kill09
kill10 kill10
kill11 ulimit -c 1024;kill11
kill12 kill12

lchown01 lchown01
lchown01_16 lchown01_16
lchown02 cp -p $LTPROOT/testcases/bin/create_link $TMP; lchown02
lchown02_16 cp -p $LTPROOT/testcases/bin/create_link $TMP; lchown02_16

libevent01 (cd ${LTPROOT}/testcases/kernel/syscalls/libevent; ./run_libevent.sh)

link01 symlink01 -T link01
link02 link02
link03 link03
link04 link04
link05 link05
link06 link06
link07 link07

#linkat test cases
linkat01 linkat01

listen01 listen01

llseek01 llseek01
llseek02 llseek02

lseek01 lseek01
lseek02 lseek02
lseek03 lseek03
lseek04 lseek04
lseek05 lseek05
lseek06 lseek06
lseek07 lseek07
lseek08 lseek08
lseek09 lseek09
lseek10 lseek10

lstat01A symlink01 -T lstat01
lstat01A_64 symlink01 -T lstat01_64
lstat01 lstat01
lstat01_64 lstat01_64
lstat02 lstat02
lstat02_64 lstat02_64
lstat03 lstat03
lstat03_64 lstat03_64

mallopt01 mallopt01

memset01 memset01
memcmp01 memcmp01
memcpy01 memcpy01

mlockall01 mlockall01
mlockall02 mlockall02
mlockall03 mlockall03

mkdir01 mkdir01
mkdir02 mkdir02
mkdir03 mkdir03
mkdir04 mkdir04
mkdir05 mkdir05
mkdir05A symlink01 -T mkdir05
mkdir08 mkdir08
mkdir09 mkdir09

#mkdirat test cases
mkdirat01 mkdir01

mknod01 mknod01
mknod02 mknod02
mknod03 mknod03
mknod04 mknod04
mknod05 mknod05
mknod06 mknod06
mknod07 mknod07
mknod08 mknod08
mknod09 mknod09

#mknodat test cases
mknodat01 mknodat01

mlock01 mlock01
mlock02 mlock02

qmm01 mmap001 -m 1
mmap01 mmap01
mmap02 mmap02
mmap03 mmap03
mmap04 mmap04
mmap05 mmap05
mmap06 mmap06
mmap07 mmap07
mmap08 mmap08
mmap09 mmap09

modify_ldt01 modify_ldt01
modify_ldt02 modify_ldt02

#
# These tests require an unmounted block device
# to run correctly. Please see individual test
# code for more information.
#
mount01 mount01 -D DEVICE -T DEVICE_FS_TYPE
mount02 mount02 -D DEVICE -T DEVICE_FS_TYPE
mount03 mount03 -D DEVICE -T DEVICE_FS_TYPE
mount04 mount04 -D DEVICE -T DEVICE_FS_TYPE

mount1234 test_mount

move_pages01 move_pages.sh 01
move_pages02 move_pages.sh 02
move_pages03 move_pages.sh 03
move_pages04 move_pages.sh 04
move_pages05 move_pages.sh 05
move_pages06 move_pages.sh 06
move_pages07 move_pages.sh 07
move_pages08 move_pages.sh 08
move_pages09 move_pages.sh 09
move_pages10 move_pages.sh 10
move_pages11 move_pages.sh 11

mprotect01 mprotect01
mprotect02 mprotect02
mprotect03 mprotect03

mq_notify01 mq_notify01
mq_open01 mq_open01
mq_timedreceive01 mq_timedreceive01
mq_timedsend01 mq_timedsend01
mq_unlink01 mq_unlink01

mremap01 mremap01
mremap02 mremap02
mremap03 mremap03
mremap04 mremap04

msgctl01 msgctl01
msgctl02 msgctl02
msgctl03 msgctl03
msgctl04 msgctl04
msgctl05 msgctl05
msgctl06 msgctl06
#msgctl07 msgctl07
msgctl08 msgctl08
msgctl09 msgctl09
msgctl10 msgctl10
msgctl11 msgctl11

msgget01 msgget01
msgget02 msgget02
msgget03 msgget03
msgget04 msgget04

msgrcv01 msgrcv01
msgrcv02 msgrcv02
msgrcv03 msgrcv03
msgrcv04 msgrcv04
msgrcv05 msgrcv05
msgrcv06 msgrcv06

msgsnd01 msgsnd01
msgsnd02 msgsnd02
msgsnd03 msgsnd03
msgsnd04 msgsnd04
msgsnd05 msgsnd05
msgsnd06 msgsnd06

msync01 msync01
msync02 msync02
msync03 msync03
msync04 msync04
msync05 msync05

munlock01 munlock01
munlock02 munlock02

munlockall01 munlockall01
munlockall02 munlockall02

munmap01 munmap01
munmap02 munmap02
munmap03 munmap03

nanosleep01 nanosleep01
nanosleep02 nanosleep02
nanosleep03 nanosleep03
nanosleep04 nanosleep04

nftw01 nftw01
nftw6401 nftw6401

nice01 nice01
nice02 nice02
nice03 nice03
nice04 nice04
nice05 nice05

open01 open01
open01A symlink01 -T open01
open02 open02
open03 open03
open04 open04
open05 open05
open06 open06
open07 open07
open08 open08
open09 open09
open10 open10

#openat test cases
openat01 openat01

mincore01 mincore01
mincore02 mincore02 

madvise01 madvise01
madvise02 madvise02
madvise03 madvise03

newuname01 newuname01

pathconf01 pathconf01

pause01 pause01
pause02 pause02
pause03 pause03

#  The personality() system call is poorly documented 
#  and difficult to figure out how to use by looking 
#  at the different architecture specific kernel files.
#personality01 personality01
#personality02 personality02

pipe01 pipe01
pipe02 pipe02
pipe03 pipe03
pipe04 pipe04
pipe05 pipe05
pipe06 pipe06
pipe07 pipe07
pipe08 pipe08
pipe09 pipe09
pipe10 pipe10
pipe11 pipe11

pipe2_01 pipe2_01
pipe2_02 pipe2_02

poll01 poll01

ppoll01 ppoll01

prctl01 prctl01
prctl02 prctl02

pread01 pread01
pread01_64 pread01_64
pread02 pread02
pread02_64 pread02_64
pread03 pread03
pread03_64 pread03_64

#profil01 profil01

pselect01 pselect01
pselect01_64 pselect01_64

ptrace01 ptrace01
ptrace02 ptrace02
ptrace03 ptrace03
ptrace04 ptrace04
ptrace06 ptrace06

pwrite01 pwrite01
pwrite02 pwrite02
pwrite03 pwrite03
pwrite04 pwrite04


read01 read01
read02 read02
read03 read03
read04 read04

readdir01 readdir01
readdir02 readdir02

readlink01A symlink01 -T readlink01
readlink01 readlink01
readlink02 readlink02
readlink03 readlink03
readlink04 cp -f $LTPROOT/testcases/bin/creat_slink $TMP; readlink04

#readlinkat test cases
readlinkat01 readlinkat01

readv01 readv01
readv02 readv02
readv03 readv03

reboot01 reboot01
reboot02 reboot02

recv01 recv01

recvfrom01 recvfrom01

recvmsg01 recvmsg01

remap_file_pages01 remap_file_pages01
remap_file_pages02 remap_file_pages02

rename01 rename01
rename01A symlink01 -T rename01
rename02 rename02
rename03 rename03
rename04 rename04
rename05 rename05
rename06 rename06
rename07 rename07
rename08 rename08
rename09 rename09
rename10 rename10
rename12 rename12
rename13 rename13
rename14 rename14

#renameat test cases
renameat01 renameat01

rmdir01 rmdir01
rmdir02 rmdir02
rmdir03 rmdir03
rmdir03A symlink01 -T rmdir03
rmdir04 rmdir04
rmdir05 rmdir05

rt_sigaction01 rt_sigaction01
rt_sigprocmask01 rt_sigprocmask01
rt_sigprocmask02 rt_sigprocmask02
rt_sigqueueinfo01 rt_sigqueueinfo01
rt_sigsuspend01 rt_sigsuspend01

sbrk01 sbrk01

sched_get_priority_max01 sched_get_priority_max01
sched_get_priority_max02 sched_get_priority_max02

sched_get_priority_min01 sched_get_priority_min01
sched_get_priority_min02 sched_get_priority_min02

sched_getparam01 sched_getparam01
sched_getparam02 sched_getparam02
sched_getparam03 sched_getparam03

sched_rr_get_interval01 sched_rr_get_interval01
sched_rr_get_interval02 sched_rr_get_interval02
sched_rr_get_interval03 sched_rr_get_interval03

sched_setparam01 sched_setparam01
sched_setparam02 sched_setparam02
sched_setparam03 sched_setparam03
sched_setparam04 sched_setparam04
sched_setparam05 sched_setparam05

sched_getscheduler01 sched_getscheduler01
sched_getscheduler02 sched_getscheduler02

sched_setscheduler01 sched_setscheduler01
sched_setscheduler02 sched_setscheduler02

sched_yield01 sched_yield01

select01 select01
select02 select02
select03 select03

semctl01 semctl01
semctl02 semctl02
semctl03 semctl03
semctl04 semctl04
semctl05 semctl05
semctl06 semctl06
semctl07 semctl07

semget01 semget01
semget02 semget02
semget03 semget03
semget05 semget05
semget06 semget06

semop01 semop01
semop02 semop02
semop03 semop03
semop04 semop04
semop05 semop05

send01 send01

sendfile02 sendfile02
sendfile02_64 sendfile02_64
sendfile03 sendfile03
sendfile03_64 sendfile03_64
sendfile04 sendfile04
sendfile04_64 sendfile04_64
sendfile05 sendfile05
sendfile05_64 sendfile05_64
sendfile06 sendfile06
sendfile06_64 sendfile06_64
sendfile07 sendfile07
sendfile07_64 sendfile07_64


sendmsg01 sendmsg01

sendto01 sendto01

setdomainname01	setdomainname01
setdomainname02	setdomainname02
setdomainname03	setdomainname03

setfsgid01 setfsgid01
setfsgid01_16 setfsgid01_16
setfsgid02 setfsgid02
setfsgid02_16 setfsgid02_16
setfsgid03 setfsgid03
setfsgid03_16 setfsgid03_16

setfsuid01 setfsuid01
setfsuid01_16 setfsuid01_16
setfsuid02 setfsuid02
setfsuid02_16 setfsuid02_16
setfsuid03 setfsuid03
setfsuid03_16 setfsuid03_16
setfsuid04 setfsuid04
setfsuid04_16 setfsuid04_16

setgid01 setgid01
setgid01_16 setgid01_16
setgid02 setgid02
setgid02_16 setgid02_16
setgid03 setgid03
setgid03_16 setgid03_16

setegid01 setegid01

sgetmask01 sgetmask01

setgroups01 setgroups01
setgroups01_16 setgroups01_16
setgroups02 setgroups02
setgroups02_16 setgroups02_16
setgroups03 setgroups03
setgroups03_16 setgroups03_16
setgroups04 setgroups04
setgroups04_16 setgroups04_16

sethostname01 sethostname01
sethostname02 sethostname02
sethostname03 sethostname03

setitimer01 setitimer01
setitimer02 setitimer02
setitimer03 setitimer03

setpgid01 setpgid01
setpgid02 setpgid02
setpgid03 setpgid03

setpgrp01 setpgrp01
setpgrp02 setpgrp02

setpriority01 setpriority01
setpriority02 setpriority02
setpriority03 setpriority03
setpriority04 setpriority04
setpriority05 setpriority05

setregid01 setregid01
setregid01_16 setregid01_16
setregid02 setregid02
setregid02_16 setregid02_16
setregid03 setregid03
setregid03_16 setregid03_16
setregid04 setregid04
setregid04_16 setregid04_16

setresgid01 setresgid01
setresgid01_16 setresgid01_16
setresgid02 setresgid02
setresgid02_16 setresgid02_16
setresgid03 setresgid03
setresgid03_16 setresgid03_16

setresuid01 setresuid01
setresuid01_16 setresuid01_16
setresuid02 setresuid02
setresuid02_16 setresuid02_16
setresuid03 setresuid03
setresuid03_16 setresuid03_16
setresuid04 setresuid04
setresuid04_16 setresuid04_16

setreuid01 setreuid01
setreuid01_16 setreuid01_16
setreuid02 setreuid02
setreuid02_16 setreuid02_16
setreuid03 setreuid03
setreuid03_16 setreuid03_16
setreuid04 setreuid04
setreuid04_16 setreuid04_16
setreuid05 setreuid05
setreuid05_16 setreuid05_16
setreuid06 setreuid06
setreuid06_16 setreuid06_16
setreuid07 setreuid07
setreuid07_16 setreuid07_16

setrlimit01 setrlimit01
setrlimit02 setrlimit02
setrlimit03 setrlimit03

set_robust_list01 set_robust_list01
#set_thread_area01 set_thread_area01
#set_thread_area02 set_thread_area02
set_tid_address01 set_tid_address01

setsid01 setsid01

setsockopt01 setsockopt01

settimeofday01 settimeofday01
settimeofday02 settimeofday02

setuid01 setuid01
setuid01_16 setuid01_16
setuid02 setuid02
setuid02_16 setuid02_16
setuid03 setuid03
setuid03_16 setuid03_16
setuid04 setuid04
setuid04_16 setuid04_16

shmat01 shmat01
shmat02 shmat02
shmat03 shmat03

shmctl01 shmctl01
shmctl02 shmctl02
shmctl03 shmctl03
shmctl04 shmctl04

shmdt01 shmdt01
shmdt02 shmdt02

shmget01 shmget01
shmget02 shmget02
shmget03 shmget03
shmget04 shmget04
shmget05 shmget05

sigaction01 sigaction01
sigaction02 sigaction02

sigaltstack01 sigaltstack01
sigaltstack02 sigaltstack02


sighold02 sighold02

signal01 signal01
signal02 signal02
signal03 signal03
signal04 signal04
signal05 signal05

signalfd01 signalfd01

signalfd4_01 signalfd4_01
signalfd4_02 signalfd4_02

sigpending02 sigpending02

sigprocmask01 sigprocmask01

sigrelse01 sigrelse01
sigreturn01 sigreturn01

sigsuspend01 sigsuspend01


socket01 socket01
socket02 socket02
socket03 socket03

socketcall01 socketcall01
socketcall02 socketcall02
socketcall03 socketcall03
socketcall04 socketcall04

socketpair01 socketpair01
socketpair02 socketpair02

sockioctl01 sockioctl01

#splice test
splice01 splice01
splice02 seq 1 10000000 | splice02 splice02-temp

tee01 tee01

ssetmask01 ssetmask01

stat01 stat01
stat01_64 stat01_64
stat02 stat02
stat02_64 stat02_64
stat03 stat03
stat03_64 stat03_64
stat04 symlink01 -T stat04
stat04_64 symlink01 -T stat04_64
stat05 stat05
stat05_64 stat05_64
stat06 stat06
stat06_64 stat06_64

statfs01 statfs01
statfs01_64 statfs01_64
statfs02 statfs02
statfs02_64 statfs02_64
statfs03 statfs03
statfs03_64 statfs03_64

statvfs01 statvfs01

stime01 stime01
stime02 stime02

string01 string01

swapoff01 swapoff01
swapoff02 swapoff02

swapon01 swapon01
swapon02 swapon02
swapon03 swapon03

#Exclusive syscall() for POWER6 machines only
switch01 endian_switch01

symlink01 symlink01
symlink02 symlink02
symlink03 symlink03
symlink04 symlink04
symlink05 symlink05

#symlinkat test cases
symlinkat01 symlinkat01

sync01 sync01
sync02 sync02

#testcases for sync_file_range
sync_file_range01 sync_file_range01

syscall01 syscall01

sysconf01 sysconf01

sysctl01 sysctl01
sysctl03 sysctl03
sysctl04 sysctl04
sysctl05 sysctl05

sysfs01 sysfs01
sysfs02 sysfs02
sysfs03 sysfs03
sysfs04 sysfs04
sysfs05 sysfs05
sysfs06 sysfs06

sysinfo01 sysinfo01
sysinfo02 sysinfo02

#syslog01 syslog01
#syslog02 syslog02
#syslog03 syslog03
#syslog04 syslog04
#syslog05 syslog05
#syslog06 syslog06
#syslog07 syslog07
#syslog08 syslog08
#syslog09 syslog09
#syslog10 syslog10
#syslog11 syslog11
#syslog12 syslog12

time01 time01
time02 time02

times01 times01
#times03 times03

# New syscall support from 2.6.25 kernel onwards

timerfd01 timerfd01
timerfd02 timerfd02
timerfd03 timerfd03

timer_getoverrun01 timer_getoverrun01
timer_gettime01 timer_gettime01

tkill01 tkill01
tkill02 tkill02

truncate01 truncate01
truncate01_64 truncate01_64
truncate02 truncate02
truncate02_64 truncate02_64
truncate03 truncate03
truncate03_64 truncate03_64
truncate04 truncate04
truncate04_64 truncate04_64

# This syscall is obsolete.  The latest glibc does not even
# include the ulimit.h file anymore.  The test will fail
# because the error handling has been simplified.
# 
ulimit01 ulimit01

umask01 umask01
umask02 umask02
umask03 umask03

uname01 uname01
uname02 uname02
uname03 uname03

unlink01 symlink01 -T unlink01
unlink05 unlink05
unlink06 unlink06
unlink07 unlink07
unlink08 unlink08

#unlinkat test cases
unlinkat01 unlinkat01

unshare01 unshare01
unshare02 unshare02

#
# These tests require an unmounted block device
# to run correctly. Please see individual test
# code for more information.
#
umount01 umount01 -D DEVICE -T DEVICE_FS_TYPE
umount02 umount02 -D DEVICE -T DEVICE_FS_TYPE
umount03 umount03 -D DEVICE -T DEVICE_FS_TYPE

umount123 test_umount

ustat01 ustat01
ustat02 ustat02

utime01 utime01
utime01A symlink01 -T utime01
utime02 utime02
utime03 utime03
utime04 utime04
utime05 utime05
utime06 utime06

utimes01 utimes01

# Introduced from Kernel 2.6.22 onwards
utimensat01 utimensat_tests.sh

vfork01 vfork01
vfork02 vfork02

vhangup01 vhangup01
vhangup02 vhangup02

#vmsplice test cases
vmsplice01 vmsplice01

wait02 wait02

wait401 wait401
wait402 wait402

#waitpid01 waitpid01
#waitpid02 waitpid02
#waitpid03 waitpid03
#waitpid04 waitpid04
#waitpid05 waitpid05
#waitpid06 waitpid06
#waitpid07 waitpid07
#waitpid08 waitpid08
#waitpid09 waitpid09
#waitpid10 waitpid10 5
#waitpid11 waitpid11
#waitpid12 waitpid12
#waitpid13 waitpid13

write01 write01
write02 write02
write03 write03
write04 write04
write05 write05

writev01 writev01
writev02 writev02
writev03 writev03
writev04 writev04
writev05 writev05
writev06 writev06


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure
  2009-06-10 22:05               ` Riku Voipio
  2009-06-11  8:33                 ` Arnaud Patard
  2009-06-11 11:27                 ` [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure vibi sreenivasan
@ 2009-06-12 13:24                 ` vibi sreenivasan
  2 siblings, 0 replies; 22+ messages in thread
From: vibi sreenivasan @ 2009-06-12 13:24 UTC (permalink / raw)
  To: Riku Voipio; +Cc: Glauber Costa, qemu-devel


> > > Having an "official" maintainer means having someone being able to give
> > > his final word if people disagree on how to fix a bug.
> 
> > One of you should step up and do it.
> 
> If nobody objects, I can.
please inform(CC) this to current maintainers & to the authors of file
you are going to maintain.

Thanks & Regards
vibi sreenivasan
> 
> 
> 
> 
> 

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2009-06-12 13:22 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-06-09 21:26 [Qemu-devel] [PATCH 0/2] linux-user: fix build error against older glibcs Eduardo Habkost
2009-06-09 21:26 ` [Qemu-devel] [PATCH 1/2] linux-user/syscall.c: define _ATFILE_SOURCE Eduardo Habkost
2009-06-09 21:26 ` [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure Eduardo Habkost
2009-06-09 22:06   ` Arnaud Patard
2009-06-10 14:12     ` Eduardo Habkost
2009-06-10 14:39       ` Arnaud Patard
2009-06-10 19:10         ` Eduardo Habkost
2009-06-10 21:48           ` Riku Voipio
2009-06-10 22:09             ` Eduardo Habkost
2009-06-11 15:14               ` Riku Voipio
2009-06-10 16:07       ` Riku Voipio
2009-06-10 16:20         ` Glauber Costa
2009-06-10 16:30           ` Arnaud Patard
2009-06-10 16:56             ` Glauber Costa
2009-06-10 22:05               ` Riku Voipio
2009-06-11  8:33                 ` Arnaud Patard
2009-06-11 15:09                   ` Riku Voipio
2009-06-12  8:30                     ` ltp vs linux-user (was: Re: [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure) Arnaud Patard
2009-06-11 11:27                 ` [Qemu-devel] [PATCH 2/2] check for utimensat() availability on configure vibi sreenivasan
2009-06-12 13:24                 ` vibi sreenivasan
2009-06-10 15:03     ` Glauber Costa
2009-06-10 21:53       ` Riku Voipio

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.