All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] HPPA : Define all the hppa specific _CLOEXEC and _NONBLOCK values
@ 2010-08-06 12:02 Guy Martin
  2010-08-06 14:34 ` Carlos O'Donell
  0 siblings, 1 reply; 8+ messages in thread
From: Guy Martin @ 2010-08-06 12:02 UTC (permalink / raw)
  To: libc-ports; +Cc: carlos, linux-parisc, Guy Martin

The following patch adds hppa specific files that define the various _CLOEXEC and
_NONBLOCK values in order to match the ones from the kernel.

Signed-off-by: Guy Martin <gmsoft@tuxicoman.be>
---
 ChangeLog.hppa                                    |   13 ++
 ports/sysdeps/unix/sysv/linux/hppa/sys/epoll.h    |  144 +++++++++++++++++++++
 ports/sysdeps/unix/sysv/linux/hppa/sys/eventfd.h  |   54 ++++++++
 ports/sysdeps/unix/sysv/linux/hppa/sys/inotify.h  |  105 +++++++++++++++
 ports/sysdeps/unix/sysv/linux/hppa/sys/signalfd.h |   66 ++++++++++
 ports/sysdeps/unix/sysv/linux/hppa/sys/timerfd.h  |   60 +++++++++
 6 files changed, 442 insertions(+), 0 deletions(-)

diff --git a/ChangeLog.hppa b/ChangeLog.hppa
index 2ccc911..fb5d803 100644
--- a/ChangeLog.hppa
+++ b/ChangeLog.hppa
@@ -1,3 +1,16 @@
+2010-08-06  Guy Martin <gmsoft@tuxicoman.be>
+
+	* ports/sysdeps/unix/sysv/linux/hppa/sys/epoll.h
+	Fix EPOLL_CLOEXEC and EPOLL_NONBLOCK to match kernel definition.
+	* ports/sysdeps/unix/sysv/linux/hppa/sys/eventfd.h
+	Fix EFD_CLOEXEC and EFD_NONBLOCK to match kernel definition.
+	* ports/sysdeps/unix/sysv/linux/hppa/sys/inotify.h
+	Fix IN_CLOEXEC and IN_NONBLOCK to match kernel definition.
+	* ports/sysdeps/unix/sysv/linux/hppa/sys/signalfd.h
+	Fix SFD_CLOEXEC and SFD_NONBLOCK to match kernel definition.
+	* ports/sysdeps/unix/sysv/linux/hppa/sys/timerfd.h
+	Fix TFD_CLOEXEC and TFD_NONBLOCK to match kernel definition.
+
 2010-06-24  Carlos O'Donell  <carlos@codesourcery.com>
 
 	* sysdeps/unix/sysv/linux/hppa/nptl/pt-vfork.S: Only create stack 
diff --git a/ports/sysdeps/unix/sysv/linux/hppa/sys/epoll.h b/ports/sysdeps/unix/sysv/linux/hppa/sys/epoll.h
new file mode 100644
index 0000000..1931cc6
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/hppa/sys/epoll.h
@@ -0,0 +1,144 @@
+/* Copyright (C) 2002-2006, 2007, 2008, 2009 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, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef	_SYS_EPOLL_H
+#define	_SYS_EPOLL_H	1
+
+#include <stdint.h>
+#include <sys/types.h>
+
+/* Get __sigset_t.  */
+#include <bits/sigset.h>
+
+#ifndef __sigset_t_defined
+# define __sigset_t_defined
+typedef __sigset_t sigset_t;
+#endif
+
+
+/* Flags to be passed to epoll_create1.  */
+enum
+  {
+    EPOLL_CLOEXEC = 010000000,
+#define EPOLL_CLOEXEC EPOLL_CLOEXEC
+    EPOLL_NONBLOCK = 00200004 /* HPUX has separate NDELAY & NONBLOCK */
+#define EPOLL_NONBLOCK EPOLL_NONBLOCK
+  };
+
+
+enum EPOLL_EVENTS
+  {
+    EPOLLIN = 0x001,
+#define EPOLLIN EPOLLIN
+    EPOLLPRI = 0x002,
+#define EPOLLPRI EPOLLPRI
+    EPOLLOUT = 0x004,
+#define EPOLLOUT EPOLLOUT
+    EPOLLRDNORM = 0x040,
+#define EPOLLRDNORM EPOLLRDNORM
+    EPOLLRDBAND = 0x080,
+#define EPOLLRDBAND EPOLLRDBAND
+    EPOLLWRNORM = 0x100,
+#define EPOLLWRNORM EPOLLWRNORM
+    EPOLLWRBAND = 0x200,
+#define EPOLLWRBAND EPOLLWRBAND
+    EPOLLMSG = 0x400,
+#define EPOLLMSG EPOLLMSG
+    EPOLLERR = 0x008,
+#define EPOLLERR EPOLLERR
+    EPOLLHUP = 0x010,
+#define EPOLLHUP EPOLLHUP
+    EPOLLRDHUP = 0x2000,
+#define EPOLLRDHUP EPOLLRDHUP
+    EPOLLONESHOT = (1 << 30),
+#define EPOLLONESHOT EPOLLONESHOT
+    EPOLLET = (1 << 31)
+#define EPOLLET EPOLLET
+  };
+
+
+/* Valid opcodes ( "op" parameter ) to issue to epoll_ctl().  */
+#define EPOLL_CTL_ADD 1	/* Add a file descriptor to the interface.  */
+#define EPOLL_CTL_DEL 2	/* Remove a file descriptor from the interface.  */
+#define EPOLL_CTL_MOD 3	/* Change file descriptor epoll_event structure.  */
+
+
+typedef union epoll_data
+{
+  void *ptr;
+  int fd;
+  uint32_t u32;
+  uint64_t u64;
+} epoll_data_t;
+
+struct epoll_event
+{
+  uint32_t events;	/* Epoll events */
+  epoll_data_t data;	/* User data variable */
+};
+
+
+__BEGIN_DECLS
+
+/* Creates an epoll instance.  Returns an fd for the new instance.
+   The "size" parameter is a hint specifying the number of file
+   descriptors to be associated with the new instance.  The fd
+   returned by epoll_create() should be closed with close().  */
+extern int epoll_create (int __size) __THROW;
+
+/* Same as epoll_create but with an FLAGS parameter.  The unused SIZE
+   parameter has been dropped.  */
+extern int epoll_create1 (int __flags) __THROW;
+
+
+/* Manipulate an epoll instance "epfd". Returns 0 in case of success,
+   -1 in case of error ( the "errno" variable will contain the
+   specific error code ) The "op" parameter is one of the EPOLL_CTL_*
+   constants defined above. The "fd" parameter is the target of the
+   operation. The "event" parameter describes which events the caller
+   is interested in and any associated user data.  */
+extern int epoll_ctl (int __epfd, int __op, int __fd,
+		      struct epoll_event *__event) __THROW;
+
+
+/* Wait for events on an epoll instance "epfd". Returns the number of
+   triggered events returned in "events" buffer. Or -1 in case of
+   error with the "errno" variable set to the specific error code. The
+   "events" parameter is a buffer that will contain triggered
+   events. The "maxevents" is the maximum number of events to be
+   returned ( usually size of "events" ). The "timeout" parameter
+   specifies the maximum wait time in milliseconds (-1 == infinite).
+
+   This function is a cancellation point and therefore not marked with
+   __THROW.  */
+extern int epoll_wait (int __epfd, struct epoll_event *__events,
+		       int __maxevents, int __timeout);
+
+
+/* Same as epoll_wait, but the thread's signal mask is temporarily
+   and atomically replaced with the one provided as parameter.
+
+   This function is a cancellation point and therefore not marked with
+   __THROW.  */
+extern int epoll_pwait (int __epfd, struct epoll_event *__events,
+			int __maxevents, int __timeout,
+			__const __sigset_t *__ss);
+
+__END_DECLS
+
+#endif /* sys/epoll.h */
diff --git a/ports/sysdeps/unix/sysv/linux/hppa/sys/eventfd.h b/ports/sysdeps/unix/sysv/linux/hppa/sys/eventfd.h
new file mode 100644
index 0000000..751f276
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/hppa/sys/eventfd.h
@@ -0,0 +1,54 @@
+/* Copyright (C) 2007, 2008, 2009 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, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef	_SYS_EVENTFD_H
+#define	_SYS_EVENTFD_H	1
+
+#include <stdint.h>
+
+
+/* Type for event counter.  */
+typedef uint64_t eventfd_t;
+
+/* Flags for signalfd.  */
+enum
+  {
+    EFD_SEMAPHORE = 1,
+#define EFD_SEMAPHORE EFD_SEMAPHORE
+    EFD_CLOEXEC = 010000000,
+#define EFD_CLOEXEC EFD_CLOEXEC
+    EFD_NONBLOCK = 00200004 /* HPUX has separate NDELAY & NONBLOCK */
+#define EFD_NONBLOCK EFD_NONBLOCK
+  };
+
+
+__BEGIN_DECLS
+
+/* Return file descriptor for generic event channel.  Set initial
+   value to COUNT.  */
+extern int eventfd (int __count, int __flags) __THROW;
+
+/* Read event counter and possibly wait for events.  */
+extern int eventfd_read (int __fd, eventfd_t *__value);
+
+/* Increment event counter.  */
+extern int eventfd_write (int __fd, eventfd_t __value);
+
+__END_DECLS
+
+#endif /* sys/eventfd.h */
diff --git a/ports/sysdeps/unix/sysv/linux/hppa/sys/inotify.h b/ports/sysdeps/unix/sysv/linux/hppa/sys/inotify.h
new file mode 100644
index 0000000..d293aee
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/hppa/sys/inotify.h
@@ -0,0 +1,105 @@
+/* Copyright (C) 2005, 2006, 2008, 2009 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, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef	_SYS_INOTIFY_H
+#define	_SYS_INOTIFY_H	1
+
+#include <stdint.h>
+
+
+/* Flags for the parameter of inotify_init1.  */
+enum
+  {
+    IN_CLOEXEC = 010000000,
+#define IN_CLOEXEC IN_CLOEXEC
+    IN_NONBLOCK = 000200004 /* HPUX has separate NDELAY & NONBLOCK */
+#define IN_NONBLOCK IN_NONBLOCK
+  };
+
+
+/* Structure describing an inotify event.  */
+struct inotify_event
+{
+  int wd;		/* Watch descriptor.  */
+  uint32_t mask;	/* Watch mask.  */
+  uint32_t cookie;	/* Cookie to synchronize two events.  */
+  uint32_t len;		/* Length (including NULs) of name.  */
+  char name __flexarr;	/* Name.  */
+};
+
+
+/* Supported events suitable for MASK parameter of INOTIFY_ADD_WATCH.  */
+#define IN_ACCESS	 0x00000001	/* File was accessed.  */
+#define IN_MODIFY	 0x00000002	/* File was modified.  */
+#define IN_ATTRIB	 0x00000004	/* Metadata changed.  */
+#define IN_CLOSE_WRITE	 0x00000008	/* Writtable file was closed.  */
+#define IN_CLOSE_NOWRITE 0x00000010	/* Unwrittable file closed.  */
+#define IN_CLOSE	 (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) /* Close.  */
+#define IN_OPEN		 0x00000020	/* File was opened.  */
+#define IN_MOVED_FROM	 0x00000040	/* File was moved from X.  */
+#define IN_MOVED_TO      0x00000080	/* File was moved to Y.  */
+#define IN_MOVE		 (IN_MOVED_FROM | IN_MOVED_TO) /* Moves.  */
+#define IN_CREATE	 0x00000100	/* Subfile was created.  */
+#define IN_DELETE	 0x00000200	/* Subfile was deleted.  */
+#define IN_DELETE_SELF	 0x00000400	/* Self was deleted.  */
+#define IN_MOVE_SELF	 0x00000800	/* Self was moved.  */
+
+/* Events sent by the kernel.  */
+#define IN_UNMOUNT	 0x00002000	/* Backing fs was unmounted.  */
+#define IN_Q_OVERFLOW	 0x00004000	/* Event queued overflowed.  */
+#define IN_IGNORED	 0x00008000	/* File was ignored.  */
+
+/* Helper events.  */
+#define IN_CLOSE	 (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)	/* Close.  */
+#define IN_MOVE		 (IN_MOVED_FROM | IN_MOVED_TO)		/* Moves.  */
+
+/* Special flags.  */
+#define IN_ONLYDIR	 0x01000000	/* Only watch the path if it is a
+					   directory.  */
+#define IN_DONT_FOLLOW	 0x02000000	/* Do not follow a sym link.  */
+#define IN_MASK_ADD	 0x20000000	/* Add to the mask of an already
+					   existing watch.  */
+#define IN_ISDIR	 0x40000000	/* Event occurred against dir.  */
+#define IN_ONESHOT	 0x80000000	/* Only send event once.  */
+
+/* All events which a program can wait on.  */
+#define IN_ALL_EVENTS	 (IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE  \
+			  | IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM	      \
+			  | IN_MOVED_TO | IN_CREATE | IN_DELETE		      \
+			  | IN_DELETE_SELF | IN_MOVE_SELF)
+
+
+__BEGIN_DECLS
+
+/* Create and initialize inotify instance.  */
+extern int inotify_init (void) __THROW;
+
+/* Create and initialize inotify instance.  */
+extern int inotify_init1 (int __flags) __THROW;
+
+/* Add watch of object NAME to inotify instance FD.  Notify about
+   events specified by MASK.  */
+extern int inotify_add_watch (int __fd, const char *__name, uint32_t __mask)
+  __THROW;
+
+/* Remove the watch specified by WD from the inotify instance FD.  */
+extern int inotify_rm_watch (int __fd, int __wd) __THROW;
+
+__END_DECLS
+
+#endif /* sys/inotify.h */
diff --git a/ports/sysdeps/unix/sysv/linux/hppa/sys/signalfd.h b/ports/sysdeps/unix/sysv/linux/hppa/sys/signalfd.h
new file mode 100644
index 0000000..da8264e
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/hppa/sys/signalfd.h
@@ -0,0 +1,66 @@
+/* Copyright (C) 2007, 2008 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, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef	_SYS_SIGNALFD_H
+#define	_SYS_SIGNALFD_H	1
+
+#define __need_sigset_t
+#include <signal.h>
+#include <stdint.h>
+
+
+struct signalfd_siginfo
+{
+  uint32_t ssi_signo;
+  int32_t ssi_errno;
+  int32_t ssi_code;
+  uint32_t ssi_pid;
+  uint32_t ssi_uid;
+  int32_t ssi_fd;
+  uint32_t ssi_tid;
+  uint32_t ssi_band;
+  uint32_t ssi_overrun;
+  uint32_t ssi_trapno;
+  int32_t ssi_status;
+  int32_t ssi_int;
+  uint64_t ssi_ptr;
+  uint64_t ssi_utime;
+  uint64_t ssi_stime;
+  uint64_t ssi_addr;
+  uint8_t __pad[48];
+};
+
+/* Flags for signalfd.  */
+enum
+  {
+    SFD_CLOEXEC = 010000000,
+#define SFD_CLOEXEC SFD_CLOEXEC
+    SFD_NONBLOCK = 00200004 /* HPUX has separate NDELAY & NONBLOCK */
+#define SFD_NONBLOCK SFD_NONBLOCK
+  };
+
+__BEGIN_DECLS
+
+/* Request notification for delivery of signals in MASK to be
+   performed using descriptor FD.*/
+extern int signalfd (int __fd, const sigset_t *__mask, int __flags)
+  __THROW __nonnull ((2));
+
+__END_DECLS
+
+#endif /* sys/signalfd.h */
diff --git a/ports/sysdeps/unix/sysv/linux/hppa/sys/timerfd.h b/ports/sysdeps/unix/sysv/linux/hppa/sys/timerfd.h
new file mode 100644
index 0000000..78cdfc4
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/hppa/sys/timerfd.h
@@ -0,0 +1,60 @@
+/* Copyright (C) 2008 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, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef	_SYS_TIMERFD_H
+#define	_SYS_TIMERFD_H	1
+
+#include <time.h>
+
+
+/* Bits to be set in the FLAGS parameter of `timerfd_create'.  */
+enum
+  {
+    TFD_CLOEXEC = 010000000,
+#define TFD_CLOEXEC TFD_CLOEXEC
+    TFD_NONBLOCK = 000200004 /* HPUX has separate NDELAY & NONBLOCK */
+#define TFD_NONBLOCK TFD_NONBLOCK
+  };
+
+
+/* Bits to be set in the FLAGS parameter of `timerfd_settime'.  */
+enum
+  {
+    TFD_TIMER_ABSTIME = 1 << 0
+#define TFD_TIMER_ABSTIME TFD_TIMER_ABSTIME
+  };
+
+
+__BEGIN_DECLS
+
+/* Return file descriptor for new interval timer source.  */
+extern int timerfd_create (clockid_t __clock_id, int __flags) __THROW;
+
+/* Set next expiration time of interval timer source UFD to UTMR.  If
+   FLAGS has the TFD_TIMER_ABSTIME flag set the timeout value is
+   absolute.  Optionally return the old expiration time in OTMR.  */
+extern int timerfd_settime (int __ufd, int __flags,
+			    __const struct itimerspec *__utmr,
+			    struct itimerspec *__otmr) __THROW;
+
+/* Return the next expiration time of UFD.  */
+extern int timerfd_gettime (int __ufd, struct itimerspec *__otmr) __THROW;
+
+__END_DECLS
+
+#endif /* sys/timerfd.h */

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

* Re: [PATCH] HPPA : Define all the hppa specific _CLOEXEC and  _NONBLOCK values
  2010-08-06 12:02 [PATCH] HPPA : Define all the hppa specific _CLOEXEC and _NONBLOCK values Guy Martin
@ 2010-08-06 14:34 ` Carlos O'Donell
  2010-08-06 14:44   ` Guy Martin
  0 siblings, 1 reply; 8+ messages in thread
From: Carlos O'Donell @ 2010-08-06 14:34 UTC (permalink / raw)
  To: Guy Martin; +Cc: libc-ports, linux-parisc

On Fri, Aug 6, 2010 at 8:02 AM, Guy Martin <gmsoft@tuxicoman.be> wrote:
> The following patch adds hppa specific files that define the various _CLOEXEC and
> _NONBLOCK values in order to match the ones from the kernel.

Is this because hppa doesn't use the same values as x86 and the only
way to get your own values is to modify your own copies of said files?

Cheers,
Carlos.

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

* Re: [PATCH] HPPA : Define all the hppa specific _CLOEXEC and _NONBLOCK values
  2010-08-06 14:34 ` Carlos O'Donell
@ 2010-08-06 14:44   ` Guy Martin
  2010-08-06 14:52     ` Carlos O'Donell
  0 siblings, 1 reply; 8+ messages in thread
From: Guy Martin @ 2010-08-06 14:44 UTC (permalink / raw)
  To: Carlos O'Donell; +Cc: libc-ports, linux-parisc

On Fri, 6 Aug 2010 10:34:12 -0400
"Carlos O'Donell" <carlos@systemhalted.org> wrote:
> 
> Is this because hppa doesn't use the same values as x86 and the only
> way to get your own values is to modify your own copies of said files?

As far as I can see, yes. Alpha is doing exactly the same thing.

Maybe a better fix would be to have glibc derive the value of all the
_CLOEXEC and _NONBLOCK from O_CLOEXEC and O_NONBLOCK instead of each
having its own copy. This is how they are defined in the kernel anyway.


Cheers,
  Guy

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

* Re: [PATCH] HPPA : Define all the hppa specific _CLOEXEC and _NONBLOCK values
  2010-08-06 14:44   ` Guy Martin
@ 2010-08-06 14:52     ` Carlos O'Donell
  2010-08-06 15:03       ` Guy Martin
  2010-08-06 15:20       ` Matt Turner
  0 siblings, 2 replies; 8+ messages in thread
From: Carlos O'Donell @ 2010-08-06 14:52 UTC (permalink / raw)
  To: Guy Martin; +Cc: libc-ports, linux-parisc

On Fri, Aug 6, 2010 at 10:44 AM, Guy Martin <gmsoft@tuxicoman.be> wrote:
> On Fri, 6 Aug 2010 10:34:12 -0400
> "Carlos O'Donell" <carlos@systemhalted.org> wrote:
>>
>> Is this because hppa doesn't use the same values as x86 and the only
>> way to get your own values is to modify your own copies of said files?
>
> As far as I can see, yes. Alpha is doing exactly the same thing.
>
> Maybe a better fix would be to have glibc derive the value of all the
> _CLOEXEC and _NONBLOCK from O_CLOEXEC and O_NONBLOCK instead of each
> having its own copy. This is how they are defined in the kernel anyway.

Yes, it would be a better fix. However, I understand that this would
be more work and you may not have much time as a volunteer. Are you
interested in fixing this problem in a more general way? I would be
willing to help champion such a patch on libc-alpha.

It's getting a bit out of hand that each machine has to carry complete
copies of all of these headers.

Cheers,
Carlos.

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

* Re: [PATCH] HPPA : Define all the hppa specific _CLOEXEC and _NONBLOCK values
  2010-08-06 14:52     ` Carlos O'Donell
@ 2010-08-06 15:03       ` Guy Martin
  2010-08-06 15:20       ` Matt Turner
  1 sibling, 0 replies; 8+ messages in thread
From: Guy Martin @ 2010-08-06 15:03 UTC (permalink / raw)
  To: Carlos O'Donell; +Cc: libc-ports, linux-parisc

On Fri, 6 Aug 2010 10:52:47 -0400
"Carlos O'Donell" <carlos@systemhalted.org> wrote:

> 
> Yes, it would be a better fix. However, I understand that this would
> be more work and you may not have much time as a volunteer. Are you
> interested in fixing this problem in a more general way? I would be
> willing to help champion such a patch on libc-alpha.

Sure, let me give it a try. I'll resend a patch going that way in a day
or two.

> It's getting a bit out of hand that each machine has to carry complete
> copies of all of these headers.

Yes I wasn't happy with the approach as well :)

Cheers,
  Guy

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

* Re: [PATCH] HPPA : Define all the hppa specific _CLOEXEC and _NONBLOCK values
  2010-08-06 14:52     ` Carlos O'Donell
  2010-08-06 15:03       ` Guy Martin
@ 2010-08-06 15:20       ` Matt Turner
  2010-08-06 15:25         ` Guy Martin
  1 sibling, 1 reply; 8+ messages in thread
From: Matt Turner @ 2010-08-06 15:20 UTC (permalink / raw)
  To: Carlos O'Donell; +Cc: Guy Martin, libc-ports, linux-parisc

On Fri, Aug 6, 2010 at 10:52 AM, Carlos O'Donell
<carlos@systemhalted.org> wrote:
> On Fri, Aug 6, 2010 at 10:44 AM, Guy Martin <gmsoft@tuxicoman.be> wrote:
>> On Fri, 6 Aug 2010 10:34:12 -0400
>> "Carlos O'Donell" <carlos@systemhalted.org> wrote:
>>>
>>> Is this because hppa doesn't use the same values as x86 and the only
>>> way to get your own values is to modify your own copies of said files?
>>
>> As far as I can see, yes. Alpha is doing exactly the same thing.
>>
>> Maybe a better fix would be to have glibc derive the value of all the
>> _CLOEXEC and _NONBLOCK from O_CLOEXEC and O_NONBLOCK instead of each
>> having its own copy. This is how they are defined in the kernel anyway.
>
> Yes, it would be a better fix. However, I understand that this would
> be more work and you may not have much time as a volunteer. Are you
> interested in fixing this problem in a more general way? I would be
> willing to help champion such a patch on libc-alpha.
>
> It's getting a bit out of hand that each machine has to carry complete
> copies of all of these headers.
>
> Cheers,
> Carlos.

I think we'd be interested in doing something like this for alpha as well.

Matt

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

* Re: [PATCH] HPPA : Define all the hppa specific _CLOEXEC and _NONBLOCK values
  2010-08-06 15:20       ` Matt Turner
@ 2010-08-06 15:25         ` Guy Martin
  2010-08-06 15:44           ` Carlos O'Donell
  0 siblings, 1 reply; 8+ messages in thread
From: Guy Martin @ 2010-08-06 15:25 UTC (permalink / raw)
  To: Matt Turner; +Cc: Carlos O'Donell, libc-ports, linux-parisc

On Fri, 6 Aug 2010 11:20:32 -0400
Matt Turner <mattst88@gmail.com> wrote:

> On Fri, Aug 6, 2010 at 10:52 AM, Carlos O'Donell
> <carlos@systemhalted.org> wrote:
> > On Fri, Aug 6, 2010 at 10:44 AM, Guy Martin <gmsoft@tuxicoman.be>
> > wrote:
> >> On Fri, 6 Aug 2010 10:34:12 -0400
> >> "Carlos O'Donell" <carlos@systemhalted.org> wrote:
> >>>
> >>> Is this because hppa doesn't use the same values as x86 and the
> >>> only way to get your own values is to modify your own copies of
> >>> said files?
> >>
> >> As far as I can see, yes. Alpha is doing exactly the same thing.
> >>
> >> Maybe a better fix would be to have glibc derive the value of all
> >> the _CLOEXEC and _NONBLOCK from O_CLOEXEC and O_NONBLOCK instead
> >> of each having its own copy. This is how they are defined in the
> >> kernel anyway.
> >
> > Yes, it would be a better fix. However, I understand that this would
> > be more work and you may not have much time as a volunteer. Are you
> > interested in fixing this problem in a more general way? I would be
> > willing to help champion such a patch on libc-alpha.
> >
> > It's getting a bit out of hand that each machine has to carry
> > complete copies of all of these headers.
> >
> > Cheers,
> > Carlos.
> 
> I think we'd be interested in doing something like this for alpha as
> well.
> 
> Matt


It seems that sparc is doing the same as well.
I'll produce a patch for glibc and glibc-ports that cleans this up.

Cheers,
  Guy

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

* Re: [PATCH] HPPA : Define all the hppa specific _CLOEXEC and _NONBLOCK values
  2010-08-06 15:25         ` Guy Martin
@ 2010-08-06 15:44           ` Carlos O'Donell
  0 siblings, 0 replies; 8+ messages in thread
From: Carlos O'Donell @ 2010-08-06 15:44 UTC (permalink / raw)
  To: Guy Martin; +Cc: Matt Turner, libc-ports, linux-parisc

On Fri, Aug 6, 2010 at 11:25 AM, Guy Martin <gmsoft@tuxicoman.be> wrote:
> It seems that sparc is doing the same as well.
> I'll produce a patch for glibc and glibc-ports that cleans this up.

Thanks Guy, I look forward to reviewing the patch.

Cheers,
Carlos.

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

end of thread, other threads:[~2010-08-06 15:44 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-08-06 12:02 [PATCH] HPPA : Define all the hppa specific _CLOEXEC and _NONBLOCK values Guy Martin
2010-08-06 14:34 ` Carlos O'Donell
2010-08-06 14:44   ` Guy Martin
2010-08-06 14:52     ` Carlos O'Donell
2010-08-06 15:03       ` Guy Martin
2010-08-06 15:20       ` Matt Turner
2010-08-06 15:25         ` Guy Martin
2010-08-06 15:44           ` Carlos O'Donell

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.