This is the mail archive of the
mailing list for the glibc project.
Re: [PATCH v2 0/10] Tilera (and Linux asm-generic) support for glibc
On 11/11/2011 4:33 PM, Chris Metcalf wrote:
On 11/11/2011 12:48 PM, Ulrich Drepper wrote:
Nothing here belongs into the main version. Stuff it in the ports
tree. I'm not modifying the existing files for this supposed
The files in "PATCH v2 8/10" that I added #ifdefs to I've now moved
into "ports" in my git tree, and we can just make sure they continue
to track changes in the files they were derived from.
The not-cancel.h header in sysdeps/unix/sysv/linux does still remain
a problem, though, since many .c files in that directory do an
#include "not-cancel.h" and will pick up that version even if there is
one in ports that is nominally ahead of it on the search path.
I think there are two choices. We can duplicate the dozen-odd files
that use not-cancel.h in that directory into sysdeps/unix/sys/linux/generic,
or we can apply just one #ifdef to handle the case where we need
to use __NR_openat instead of __NR_open. I suspect the patch to
not-cancel.h is small enough that it's worth not duplicating the
dozen-odd C files (about 2,700 lines total).
But, I'm certainly happy to follow the engineering instincts of
the maintainers. The patch is basically this (modulo indentation):
/* Uncancelable open. */
#define open_not_cancel(name, flags, mode) \
INLINE_SYSCALL (open, 3, (const char *) (name), (flags), (mode))
#define open_not_cancel_2(name, flags) \
INLINE_SYSCALL (open, 2, (const char *) (name), (flags))
+#define open_not_cancel(name, flags, mode) \
+ INLINE_SYSCALL (openat, 4, AT_FDCWD, (const char *) (name), (flags), (mode))
+#define open_not_cancel_2(name, flags) \
+ INLINE_SYSCALL (openat, 3, AT_FDCWD, (const char *) (name), (flags))
/* Uncancelable openat. */
#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
Chris Metcalf, Tilera Corp.