[PATCH] [RFC] hppa: add fanotify_mark

classic Classic list List threaded Threaded
15 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH] [RFC] hppa: add fanotify_mark

Mike Frysinger
Another example of all the 64bit arches getting the definition via a
common file, but the 32bit ones all adding it by themselves and hppa
was missed.

I'm not entirely sure about the usage of GLIBC_2.19 symbols here.
We'd like to backport this so people can use it, but it means we'd
be releasing a glibc-2.17/glibc-2.18 with a GLIBC_2.19 symbol in it.
But maybe it won't be a big deal since you'd only get that 2.19 ref
if you actually used the symbol ?

There hasn't been a glibc release where hppa worked w/out a bunch of
patches, so in reality there's only two distros that matter -- Gentoo
and Debian.

Reported-by: Jeroen Roovers <[hidden email]>
Signed-off-by: Mike Frysinger <[hidden email]>
---
 Versions.def                                     | 1 +
 ports/sysdeps/unix/sysv/linux/hppa/Versions      | 3 +++
 ports/sysdeps/unix/sysv/linux/hppa/syscalls.list | 1 +
 3 files changed, 5 insertions(+)

diff --git a/Versions.def b/Versions.def
index 0854e6e..bca4ff4 100644
--- a/Versions.def
+++ b/Versions.def
@@ -35,6 +35,7 @@ libc {
   GLIBC_2.16
   GLIBC_2.17
   GLIBC_2.18
+  GLIBC_2.19
   HURD_CTHREADS_0.3
 %ifdef EXPORT_UNWIND_FIND_FDE
   GCC_3.0
diff --git a/ports/sysdeps/unix/sysv/linux/hppa/Versions b/ports/sysdeps/unix/sysv/linux/hppa/Versions
index a62ef19..a392fee 100644
--- a/ports/sysdeps/unix/sysv/linux/hppa/Versions
+++ b/ports/sysdeps/unix/sysv/linux/hppa/Versions
@@ -32,6 +32,9 @@ libc {
     _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
     prlimit64;
   }
+  GLIBC_2.19 {
+    fanotify_mark;
+  }
 }
 librt {
   GLIBC_2.3 {
diff --git a/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list b/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list
index ae36d46..ae462ed 100644
--- a/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list
+++ b/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list
@@ -36,3 +36,4 @@ socketpair - socketpair i:iiif __socketpair socketpair
 setrlimit - setrlimit i:ip __setrlimit setrlimit
 getrlimit - getrlimit i:ip __getrlimit getrlimit
 prlimit64 EXTRA prlimit64 i:iipp __prlimit64 prlimit64@@GLIBC_2.17
+fanotify_mark EXTRA fanotify_mark i:iiiiis __fanotify_mark fanotify_mark@@GLIBC_2.19
--
1.8.3.2

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] [RFC] hppa: add fanotify_mark

Joseph Myers
On Wed, 21 Aug 2013, Mike Frysinger wrote:

> Another example of all the 64bit arches getting the definition via a
> common file, but the 32bit ones all adding it by themselves and hppa
> was missed.

How about adding an architecture-independent testcase (Linux-specific, of
course) for this function?  I've no idea whether it can test any semantics
of fanotify_init / fanotify_mark, or only that calls to them link OK, but
in general when fixing bugs it's a good idea to add testcases that would
have detected them, and both functions are in my list of untested symbols
<http://sourceware.org/ml/libc-alpha/2013-07/msg00386.html>, which we need
to add test coverage for bit by bit.

--
Joseph S. Myers
[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] [RFC] hppa: add fanotify_mark

Mike Frysinger
On Wednesday 21 August 2013 12:30:10 Joseph S. Myers wrote:

> On Wed, 21 Aug 2013, Mike Frysinger wrote:
> > Another example of all the 64bit arches getting the definition via a
> > common file, but the 32bit ones all adding it by themselves and hppa
> > was missed.
>
> How about adding an architecture-independent testcase (Linux-specific, of
> course) for this function?  I've no idea whether it can test any semantics
> of fanotify_init / fanotify_mark, or only that calls to them link OK, but
> in general when fixing bugs it's a good idea to add testcases that would
> have detected them, and both functions are in my list of untested symbols
> <http://sourceware.org/ml/libc-alpha/2013-07/msg00386.html>, which we need
> to add test coverage for bit by bit.
the fatrace project [1] was used as a spot check.  their is concern of running
the test on a kernel where fanotify support has been disabled, but hopefully
that should be easy to detect.
-mike

1: https://launchpad.net/fatrace

signature.asc (853 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

[PATCH v2] hppa: add fanotify_mark

Mike Frysinger
In reply to this post by Mike Frysinger
Another example of all the 64bit arches getting the definition via a
common file, but the 32bit ones all adding it by themselves and hppa
was missed.

I'm not entirely sure about the usage of GLIBC_2.19 symbols here.
We'd like to backport this so people can use it, but it means we'd
be releasing a glibc-2.17/glibc-2.18 with a GLIBC_2.19 symbol in it.
But maybe it won't be a big deal since you'd only get that 2.19 ref
if you actually used the symbol ?

There hasn't been a glibc release where hppa worked w/out a bunch of
patches, so in reality there's only two distros that matter -- Gentoo
and Debian.

Reported-by: Jeroen Roovers <[hidden email]>
Signed-off-by: Mike Frysinger <[hidden email]>
---
v2
        - add basic fanotify test

 Versions.def                                     |  1 +
 ports/sysdeps/unix/sysv/linux/hppa/Versions      |  3 ++
 ports/sysdeps/unix/sysv/linux/hppa/syscalls.list |  1 +
 sysdeps/unix/sysv/linux/Makefile                 |  2 +-
 sysdeps/unix/sysv/linux/tst-fanotify.c           | 56 ++++++++++++++++++++++++
 5 files changed, 62 insertions(+), 1 deletion(-)
 create mode 100644 sysdeps/unix/sysv/linux/tst-fanotify.c

diff --git a/Versions.def b/Versions.def
index 0854e6e..bca4ff4 100644
--- a/Versions.def
+++ b/Versions.def
@@ -35,6 +35,7 @@ libc {
   GLIBC_2.16
   GLIBC_2.17
   GLIBC_2.18
+  GLIBC_2.19
   HURD_CTHREADS_0.3
 %ifdef EXPORT_UNWIND_FIND_FDE
   GCC_3.0
diff --git a/ports/sysdeps/unix/sysv/linux/hppa/Versions b/ports/sysdeps/unix/sysv/linux/hppa/Versions
index a62ef19..a392fee 100644
--- a/ports/sysdeps/unix/sysv/linux/hppa/Versions
+++ b/ports/sysdeps/unix/sysv/linux/hppa/Versions
@@ -32,6 +32,9 @@ libc {
     _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
     prlimit64;
   }
+  GLIBC_2.19 {
+    fanotify_mark;
+  }
 }
 librt {
   GLIBC_2.3 {
diff --git a/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list b/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list
index ae36d46..ae462ed 100644
--- a/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list
+++ b/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list
@@ -36,3 +36,4 @@ socketpair - socketpair i:iiif __socketpair socketpair
 setrlimit - setrlimit i:ip __setrlimit setrlimit
 getrlimit - getrlimit i:ip __getrlimit getrlimit
 prlimit64 EXTRA prlimit64 i:iipp __prlimit64 prlimit64@@GLIBC_2.17
+fanotify_mark EXTRA fanotify_mark i:iiiiis __fanotify_mark fanotify_mark@@GLIBC_2.19
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index 247cb9c..234d5a7 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -38,7 +38,7 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \
   bits/socket_type.h bits/syscall.h bits/sysctl.h \
   bits/mman-linux.h
 
-tests += tst-clone
+tests += tst-clone tst-fanotify
 
 # Generate the list of SYS_* macros for the system calls (__NR_* macros).
 
diff --git a/sysdeps/unix/sysv/linux/tst-fanotify.c b/sysdeps/unix/sysv/linux/tst-fanotify.c
new file mode 100644
index 0000000..1d6c855
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-fanotify.c
@@ -0,0 +1,56 @@
+/* Basic fanotify test.
+   Copyright (C) 2013 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <sys/fanotify.h>
+
+static int
+do_test (void)
+{
+  int fd, ret;
+
+  fd = fanotify_init (0, 0);
+  if (fd < 0 && 0)
+    {
+      if (errno == ENOSYS)
+ {
+  puts ("SKIP: missing support for fanotify (check CONFIG_FANOTIFY=y)");
+  return 0;
+ }
+
+      perror ("fanotify_init (0, 0) failed");
+      return 1;
+    }
+
+  ret = fanotify_mark (fd, FAN_MARK_ADD | FAN_MARK_MOUNT, FAN_ACCESS
+       | FAN_MODIFY | FAN_OPEN | FAN_CLOSE | FAN_ONDIR
+       | FAN_EVENT_ON_CHILD, AT_FDCWD, ".");
+  if (ret)
+    {
+      perror ("fanotify_mark (...) failed");
+      return 1;
+    }
+
+  puts ("All OK");
+  return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
--
1.8.3.2

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH v2] hppa: add fanotify_mark

Joseph Myers
On Wed, 28 Aug 2013, Mike Frysinger wrote:

> +  if (fd < 0 && 0)

That && 0 seems suspicious....

--
Joseph S. Myers
[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH v2] hppa: add fanotify_mark

Mike Frysinger
On Thursday 29 August 2013 08:15:29 Joseph S. Myers wrote:
> On Wed, 28 Aug 2013, Mike Frysinger wrote:
> > +  if (fd < 0 && 0)
>
> That && 0 seems suspicious....

yeah, left over debug while testing another part
-mike

signature.asc (853 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH v2] hppa: add fanotify_mark

Carlos O'Donell-6
In reply to this post by Mike Frysinger
On 08/28/2013 06:26 PM, Mike Frysinger wrote:
> Another example of all the 64bit arches getting the definition via a
> common file, but the 32bit ones all adding it by themselves and hppa
> was missed.
>
> I'm not entirely sure about the usage of GLIBC_2.19 symbols here.
> We'd like to backport this so people can use it, but it means we'd
> be releasing a glibc-2.17/glibc-2.18 with a GLIBC_2.19 symbol in it.
> But maybe it won't be a big deal since you'd only get that 2.19 ref
> if you actually used the symbol ?

That's going to be very hard to do without some intense hacking to
get a 2.17 or 2.18 with a 2.19 symbol. The build system isn't designed
to allow you to do that?

If I had to do it I would just add the symbol *without* a version since
that should work to upgrade to 2.19 eventually which provides a default
symbol at @@2.19. You can test that quickly by building an application
with the glibc that has the symbol without version, and then running
it under the new ld.

> There hasn't been a glibc release where hppa worked w/out a bunch of
> patches, so in reality there's only two distros that matter -- Gentoo
> and Debian.

Yeah, that's my fault for not merging things :(

> Reported-by: Jeroen Roovers <[hidden email]>
> Signed-off-by: Mike Frysinger <[hidden email]>
> ---
> v2
> - add basic fanotify test
>
>  Versions.def                                     |  1 +
>  ports/sysdeps/unix/sysv/linux/hppa/Versions      |  3 ++
>  ports/sysdeps/unix/sysv/linux/hppa/syscalls.list |  1 +
>  sysdeps/unix/sysv/linux/Makefile                 |  2 +-
>  sysdeps/unix/sysv/linux/tst-fanotify.c           | 56 ++++++++++++++++++++++++
>  5 files changed, 62 insertions(+), 1 deletion(-)
>  create mode 100644 sysdeps/unix/sysv/linux/tst-fanotify.c
>
> diff --git a/Versions.def b/Versions.def
> index 0854e6e..bca4ff4 100644
> --- a/Versions.def
> +++ b/Versions.def
> @@ -35,6 +35,7 @@ libc {
>    GLIBC_2.16
>    GLIBC_2.17
>    GLIBC_2.18
> +  GLIBC_2.19

OK.

>    HURD_CTHREADS_0.3
>  %ifdef EXPORT_UNWIND_FIND_FDE
>    GCC_3.0
> diff --git a/ports/sysdeps/unix/sysv/linux/hppa/Versions b/ports/sysdeps/unix/sysv/linux/hppa/Versions
> index a62ef19..a392fee 100644
> --- a/ports/sysdeps/unix/sysv/linux/hppa/Versions
> +++ b/ports/sysdeps/unix/sysv/linux/hppa/Versions
> @@ -32,6 +32,9 @@ libc {
>      _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
>      prlimit64;
>    }
> +  GLIBC_2.19 {
> +    fanotify_mark;

OK.

> +  }
>  }
>  librt {
>    GLIBC_2.3 {
> diff --git a/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list b/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list
> index ae36d46..ae462ed 100644
> --- a/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list
> +++ b/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list
> @@ -36,3 +36,4 @@ socketpair - socketpair i:iiif __socketpair socketpair
>  setrlimit - setrlimit i:ip __setrlimit setrlimit
>  getrlimit - getrlimit i:ip __getrlimit getrlimit
>  prlimit64 EXTRA prlimit64 i:iipp __prlimit64 prlimit64@@GLIBC_2.17
> +fanotify_mark EXTRA fanotify_mark i:iiiiis __fanotify_mark fanotify_mark@@GLIBC_2.19

OK. I followed the discussion around 5i's.

> diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
> index 247cb9c..234d5a7 100644


The rest should be a distinct commit adding the test in the event we need
to revert it or cherry pick just the test.

> --- a/sysdeps/unix/sysv/linux/Makefile
> +++ b/sysdeps/unix/sysv/linux/Makefile
> @@ -38,7 +38,7 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \
>    bits/socket_type.h bits/syscall.h bits/sysctl.h \
>    bits/mman-linux.h
>  
> -tests += tst-clone
> +tests += tst-clone tst-fanotify

OK.

>  # Generate the list of SYS_* macros for the system calls (__NR_* macros).
>  
> diff --git a/sysdeps/unix/sysv/linux/tst-fanotify.c b/sysdeps/unix/sysv/linux/tst-fanotify.c
> new file mode 100644
> index 0000000..1d6c855
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/tst-fanotify.c
> @@ -0,0 +1,56 @@
> +/* Basic fanotify test.
> +   Copyright (C) 2013 Free Software Foundation, Inc.
> +   This file is part of the GNU C Library.
> +
> +   The GNU C Library is free software; you can redistribute it and/or
> +   modify it under the terms of the GNU Lesser General Public
> +   License as published by the Free Software Foundation; either
> +   version 2.1 of the License, or (at your option) any later version.
> +
> +   The GNU C Library is distributed in the hope that it will be useful,
> +   but WITHOUT ANY WARRANTY; without even the implied warranty of
> +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> +   Lesser General Public License for more details.
> +
> +   You should have received a copy of the GNU Lesser General Public
> +   License along with the GNU C Library; if not, see
> +   <http://www.gnu.org/licenses/>.  */

OK good header.

> +
> +#include <errno.h>
> +#include <fcntl.h>
> +#include <stdio.h>
> +#include <sys/fanotify.h>
> +
> +static int
> +do_test (void)
> +{
> +  int fd, ret;
> +
> +  fd = fanotify_init (0, 0);
> +  if (fd < 0 && 0)

We already talked about this bug.

> +    {
> +      if (errno == ENOSYS)
> + {
> +  puts ("SKIP: missing support for fanotify (check CONFIG_FANOTIFY=y)");
> +  return 0;

OK.

> + }
> +
> +      perror ("fanotify_init (0, 0) failed");
> +      return 1;
> +    }
> +
> +  ret = fanotify_mark (fd, FAN_MARK_ADD | FAN_MARK_MOUNT, FAN_ACCESS
> +       | FAN_MODIFY | FAN_OPEN | FAN_CLOSE | FAN_ONDIR
> +       | FAN_EVENT_ON_CHILD, AT_FDCWD, ".");
> +  if (ret)
> +    {
> +      perror ("fanotify_mark (...) failed");
> +      return 1;
> +    }
> +
> +  puts ("All OK");
> +  return 0;
> +}
> +
> +#define TEST_FUNCTION do_test ()
> +#include "../test-skeleton.c"

Looks good to me.

Cheers,
Carlos.

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH v2] hppa: add fanotify_mark

Joseph Myers
On Fri, 30 Aug 2013, Carlos O'Donell wrote:

> > I'm not entirely sure about the usage of GLIBC_2.19 symbols here.
> > We'd like to backport this so people can use it, but it means we'd
> > be releasing a glibc-2.17/glibc-2.18 with a GLIBC_2.19 symbol in it.
> > But maybe it won't be a big deal since you'd only get that 2.19 ref
> > if you actually used the symbol ?
>
> That's going to be very hard to do without some intense hacking to
> get a 2.17 or 2.18 with a 2.19 symbol. The build system isn't designed
> to allow you to do that?

Backporting a Versions.def addition is trivial.

(Of course if hppa had ABI test baselines, a backport to there would be
needed along with the rest of the changes, but (a) that's just as easy and
(b) that's still on my long list of areas hppa is out of sync with other
ports - such baselines will of course need comparing with past
distribution binaries when added, to detect any ABI bugs introduced over
time.)

--
Joseph S. Myers
[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH v2] hppa: add fanotify_mark

Roland McGrath-4
It just seems fundamentally wrong to backport a new symbol.
Reply | Threaded
Open this post in threaded view
|

[PATCH 1/2 v3] tst-fanotify: new simple test

Mike Frysinger
In reply to this post by Mike Frysinger
Basic test for the fanotify functions.

Signed-off-by: Mike Frysinger <[hidden email]>
---
v3
        - fixed left over debug code
        - split into sep commit

 ChangeLog                              |  5 +++
 sysdeps/unix/sysv/linux/Makefile       |  2 +-
 sysdeps/unix/sysv/linux/tst-fanotify.c | 56 ++++++++++++++++++++++++++++++++++
 3 files changed, 62 insertions(+), 1 deletion(-)
 create mode 100644 sysdeps/unix/sysv/linux/tst-fanotify.c

diff --git a/ChangeLog b/ChangeLog
index 34f7c4a..2c300a5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-09-02  Mike Frysinger  <[hidden email]>
+
+ * sysdeps/unix/sysv/linux/tst-fanotify.c: New test.
+ * sysdeps/unix/sysv/linux/Makefile (tests): Add tst-fanotify.
+
 2013-09-02  Joseph Myers  <[hidden email]>
 
  [BZ #14155]
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index 247cb9c..234d5a7 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -38,7 +38,7 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \
   bits/socket_type.h bits/syscall.h bits/sysctl.h \
   bits/mman-linux.h
 
-tests += tst-clone
+tests += tst-clone tst-fanotify
 
 # Generate the list of SYS_* macros for the system calls (__NR_* macros).
 
diff --git a/sysdeps/unix/sysv/linux/tst-fanotify.c b/sysdeps/unix/sysv/linux/tst-fanotify.c
new file mode 100644
index 0000000..b88995d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-fanotify.c
@@ -0,0 +1,56 @@
+/* Basic fanotify test.
+   Copyright (C) 2013 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <sys/fanotify.h>
+
+static int
+do_test (void)
+{
+  int fd, ret;
+
+  fd = fanotify_init (0, 0);
+  if (fd < 0)
+    {
+      if (errno == ENOSYS)
+ {
+  puts ("SKIP: missing support for fanotify (check CONFIG_FANOTIFY=y)");
+  return 0;
+ }
+
+      perror ("fanotify_init (0, 0) failed");
+      return 1;
+    }
+
+  ret = fanotify_mark (fd, FAN_MARK_ADD | FAN_MARK_MOUNT, FAN_ACCESS
+       | FAN_MODIFY | FAN_OPEN | FAN_CLOSE | FAN_ONDIR
+       | FAN_EVENT_ON_CHILD, AT_FDCWD, ".");
+  if (ret)
+    {
+      perror ("fanotify_mark (...) failed");
+      return 1;
+    }
+
+  puts ("All OK");
+  return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
--
1.8.3.2

Reply | Threaded
Open this post in threaded view
|

[PATCH 2/2 v3] hppa: add fanotify_mark

Mike Frysinger
Another example of all the 64bit arches getting the definition via a
common file, but the 32bit ones all adding it by themselves and hppa
was missed.

I'm not entirely sure about the usage of GLIBC_2.19 symbols here.
We'd like to backport this so people can use it, but it means we'd
be releasing a glibc-2.17/glibc-2.18 with a GLIBC_2.19 symbol in it.
But maybe it won't be a big deal since you'd only get that 2.19 ref
if you actually used the symbol ?

There hasn't been a glibc release where hppa worked w/out a bunch of
patches, so in reality there's only two distros that matter -- Gentoo
and Debian.

Reported-by: Jeroen Roovers <[hidden email]>
Signed-off-by: Mike Frysinger <[hidden email]>
---
v3
        - split test out

 ChangeLog                                        | 4 ++++
 Versions.def                                     | 1 +
 ports/ChangeLog                                  | 7 +++++++
 ports/sysdeps/unix/sysv/linux/hppa/Versions      | 3 +++
 ports/sysdeps/unix/sysv/linux/hppa/syscalls.list | 1 +
 5 files changed, 16 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 2c300a5..2210a9c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2013-09-02  Mike Frysinger  <[hidden email]>
 
+ * Versions.def (libc): Add GLIBC_2.19.
+
+2013-09-02  Mike Frysinger  <[hidden email]>
+
  * sysdeps/unix/sysv/linux/tst-fanotify.c: New test.
  * sysdeps/unix/sysv/linux/Makefile (tests): Add tst-fanotify.
 
diff --git a/Versions.def b/Versions.def
index 0854e6e..bca4ff4 100644
--- a/Versions.def
+++ b/Versions.def
@@ -35,6 +35,7 @@ libc {
   GLIBC_2.16
   GLIBC_2.17
   GLIBC_2.18
+  GLIBC_2.19
   HURD_CTHREADS_0.3
 %ifdef EXPORT_UNWIND_FIND_FDE
   GCC_3.0
diff --git a/ports/ChangeLog b/ports/ChangeLog
index fcb58cc..9b63801 100644
--- a/ports/ChangeLog
+++ b/ports/ChangeLog
@@ -1,3 +1,10 @@
+2013-09-02  Mike Frysinger  <[hidden email]>
+
+ * sysdeps/unix/sysv/linux/hppa/syscalls.list (fanotify_mark): New
+ entry.
+ * sysdeps/unix/sysv/linux/hppa/Versions (libc): Add GLIBC_2.19 and
+ fanotify_mark.
+
 2013-01-02  Joseph Myers  <[hidden email]>
 
  * README: Update copyright dates in example.
diff --git a/ports/sysdeps/unix/sysv/linux/hppa/Versions b/ports/sysdeps/unix/sysv/linux/hppa/Versions
index a62ef19..a392fee 100644
--- a/ports/sysdeps/unix/sysv/linux/hppa/Versions
+++ b/ports/sysdeps/unix/sysv/linux/hppa/Versions
@@ -32,6 +32,9 @@ libc {
     _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
     prlimit64;
   }
+  GLIBC_2.19 {
+    fanotify_mark;
+  }
 }
 librt {
   GLIBC_2.3 {
diff --git a/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list b/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list
index ae36d46..ae462ed 100644
--- a/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list
+++ b/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list
@@ -36,3 +36,4 @@ socketpair - socketpair i:iiif __socketpair socketpair
 setrlimit - setrlimit i:ip __setrlimit setrlimit
 getrlimit - getrlimit i:ip __getrlimit getrlimit
 prlimit64 EXTRA prlimit64 i:iipp __prlimit64 prlimit64@@GLIBC_2.17
+fanotify_mark EXTRA fanotify_mark i:iiiiis __fanotify_mark fanotify_mark@@GLIBC_2.19
--
1.8.3.2

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH v2] hppa: add fanotify_mark

Mike Frysinger
In reply to this post by Carlos O'Donell-6
On Friday 30 August 2013 13:49:50 Carlos O'Donell wrote:

> On 08/28/2013 06:26 PM, Mike Frysinger wrote:
> > Another example of all the 64bit arches getting the definition via a
> > common file, but the 32bit ones all adding it by themselves and hppa
> > was missed.
> >
> > I'm not entirely sure about the usage of GLIBC_2.19 symbols here.
> > We'd like to backport this so people can use it, but it means we'd
> > be releasing a glibc-2.17/glibc-2.18 with a GLIBC_2.19 symbol in it.
> > But maybe it won't be a big deal since you'd only get that 2.19 ref
> > if you actually used the symbol ?
>
> That's going to be very hard to do without some intense hacking to
> get a 2.17 or 2.18 with a 2.19 symbol. The build system isn't designed
> to allow you to do that?
>
> If I had to do it I would just add the symbol *without* a version since
> that should work to upgrade to 2.19 eventually which provides a default
> symbol at @@2.19. You can test that quickly by building an application
> with the glibc that has the symbol without version, and then running
> it under the new ld.
thanks, i'll give that a spin

> > There hasn't been a glibc release where hppa worked w/out a bunch of
> > patches, so in reality there's only two distros that matter -- Gentoo
> > and Debian.
>
> Yeah, that's my fault for not merging things :(

sorry, i didn't mean to make it sound like a slight.  just providing reasoning
behind backporting a symbol (which i know is not something normally done).

> > diff --git a/sysdeps/unix/sysv/linux/Makefile
> > b/sysdeps/unix/sysv/linux/Makefile index 247cb9c..234d5a7 100644
>
> The rest should be a distinct commit adding the test in the event we need
> to revert it or cherry pick just the test.

done
-mike

signature.asc (853 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH 1/2 v3] tst-fanotify: new simple test

Mike Frysinger
In reply to this post by Mike Frysinger
On Monday 02 September 2013 23:20:36 Mike Frysinger wrote:
> Basic test for the fanotify functions.

i've pushed the v3 patchset now
-mike

signature.asc (853 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH v2] hppa: add fanotify_mark

Carlos O'Donell-6
In reply to this post by Roland McGrath-4
On 08/30/2013 04:51 PM, Roland McGrath wrote:
> It just seems fundamentally wrong to backport a new symbol.

It's nice to say that it's wrong, but what are the alternatives?

Upgrading the distribution to 2.19 carries with it significant risks.

Cheers,
Carlos.
 

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH v2] hppa: add fanotify_mark

Roland McGrath-4
> On 08/30/2013 04:51 PM, Roland McGrath wrote:
> > It just seems fundamentally wrong to backport a new symbol.
>
> It's nice to say that it's wrong, but what are the alternatives?

Obviously, you just live without the symbol until you upgrade to a libc new
enough to have it.