Movatterモバイル変換


[0]ホーム

URL:


This is the mail archive of thelibc-alpha@sourceware.orgmailing list for theglibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav:[Date Prev] [Date Next][Thread Prev] [Thread Next]
Other format:[Raw text]

[COMMITTED] Remove NO_CANCELLATION macro


The NO_CANCELLATION macro is used currently on generic headers todefine non cancellable syscalls and on Linux fcntl to implement the noncancellable variation.  Former should be single-handled by not-cancel.hheader and former could be simplified build both cancellable and noncancellable for default objects and alias the non-cancellable to defaultone for rtld ones (since Linux already support cancellation as default).This patch thus removes the NO_CANCELLATION macro and its usage.  Thegeneric non cancellable fcntl is route to internal fcntl.Checked on x86_64-linux-gnu and i686-linux-gnu.  Also checked witha build again major ABIs.* sysdeps/generic/not-cancel.h (NO_CANCELLATION): Remove macro.* sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h (NO_CANCELLATION):Likewise.* sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (NO_CANCELLATION):Likewise.* sysdeps/unix/sysv/linux/arm/sysdep-cancel.h (NO_CANCELLATION):Likewise.* sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h (NO_CANCELLATION):Likewise.* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (NO_CANCELLATION):Likewise.* sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (NO_CANCELLATION):Likewise.* sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h (NO_CANCELLATION):Likewise.* sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h(NO_CANCELLATION): Likewise.* sysdeps/unix/sysv/linux/mips/sysdep-cancel.h (NO_CANCELLATION):Likewise.* sysdeps/unix/sysv/linux/nios2/sysdep-cancel.h (NO_CANCELLATION):Likewise.* sysdeps/unix/sysv/linux/powerpc/sysdep-cancel.h (NO_CANCELLATION):Likewise.* sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h(NO_CANCELLATION): Likewise.* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h(NO_CANCELLATION): Likewise.* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (NO_CANCELLATION):Likewise* sysdeps/unix/sysv/linux/sparc/sysdep-cancel.h (NO_CANCELLATION):Likewise.* sysdeps/unix/sysv/linux/tile/sysdep-cancel.h (NO_CANCELLATION):Likewise.* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (NO_CANCELLATION):Likewise.* sysdeps/unix/sysv/linux/not-cancel.h (__fcntl_nocancel): Addhidden prototype.* sysdeps/unix/sysv/linux/fcntl.c (__fcntl_nocancel): Define onlyfor !IS_IN (rtld) and remove NO_CANCELLATION usage.--- ChangeLog                                          | 42 ++++++++++++++++++++++ sysdeps/generic/not-cancel.h                       |  2 -- sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h    |  1 - sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h      |  1 - sysdeps/unix/sysv/linux/arm/sysdep-cancel.h        |  1 - sysdeps/unix/sysv/linux/fcntl.c                    | 24 +++++++------ sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h       |  1 - sysdeps/unix/sysv/linux/i386/sysdep-cancel.h       |  1 - sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h       |  1 - sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h       |  1 - sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h |  1 - sysdeps/unix/sysv/linux/mips/sysdep-cancel.h       |  1 - sysdeps/unix/sysv/linux/nios2/sysdep-cancel.h      |  1 - sysdeps/unix/sysv/linux/not-cancel.h               |  3 +- sysdeps/unix/sysv/linux/powerpc/sysdep-cancel.h    |  1 - .../unix/sysv/linux/s390/s390-32/sysdep-cancel.h   |  1 - .../unix/sysv/linux/s390/s390-64/sysdep-cancel.h   |  1 - sysdeps/unix/sysv/linux/sh/sysdep-cancel.h         |  1 - sysdeps/unix/sysv/linux/sparc/sysdep-cancel.h      |  1 - sysdeps/unix/sysv/linux/tile/sysdep-cancel.h       |  1 - sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h     |  1 - 21 files changed, 58 insertions(+), 30 deletions(-)diff --git a/sysdeps/generic/not-cancel.h b/sysdeps/generic/not-cancel.hindex e5a850c..41ce1fc 100644--- a/sysdeps/generic/not-cancel.h+++ b/sysdeps/generic/not-cancel.h@@ -44,5 +44,3 @@   __nanosleep (requested_time, remaining) #define __fcntl_nocancel(fd, cmd, ...) \   __fcntl (fd, cmd, __VA_ARGS__)--#define NO_CANCELLATION 1diff --git a/sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h b/sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.hindex 80732f5..27741a3 100644--- a/sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h+++ b/sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h@@ -41,7 +41,6 @@ extern int __local_multiple_threads attribute_hidden;  /* For rtld, et cetera.  */ # define SINGLE_THREAD_P 1-# define NO_CANCELLATION 1  #endif diff --git a/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h b/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.hindex 72e6c0c..561cb67 100644--- a/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h+++ b/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h@@ -39,7 +39,6 @@ extern int __local_multiple_threads attribute_hidden; #else  # define SINGLE_THREAD_P (1)-# define NO_CANCELLATION 1  #endif diff --git a/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h b/sysdeps/unix/sysv/linux/arm/sysdep-cancel.hindex 8930245..b227187 100644--- a/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h+++ b/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h@@ -40,7 +40,6 @@ extern int __local_multiple_threads attribute_hidden;  /* For rtld, et cetera.  */ # define SINGLE_THREAD_P 1-# define NO_CANCELLATION 1  #endif diff --git a/sysdeps/unix/sysv/linux/fcntl.c b/sysdeps/unix/sysv/linux/fcntl.cindex 76e846c..cda6be7 100644--- a/sysdeps/unix/sysv/linux/fcntl.c+++ b/sysdeps/unix/sysv/linux/fcntl.c@@ -19,6 +19,7 @@ #include <stdarg.h> #include <errno.h> #include <sysdep-cancel.h>+#include <not-cancel.h>  #ifndef __NR_fcntl64 # define __NR_fcntl64 __NR_fcntl@@ -46,9 +47,8 @@ fcntl_common (int fd, int cmd, void *arg)   return INLINE_SYSCALL_CALL (fcntl64, fd, cmd, (void *) arg); } -#ifndef NO_CANCELLATION int-__fcntl_nocancel (int fd, int cmd, ...)+__libc_fcntl (int fd, int cmd, ...) {   va_list ap;   void *arg;@@ -57,12 +57,18 @@ __fcntl_nocancel (int fd, int cmd, ...)   arg = va_arg (ap, void *);   va_end (ap); +  cmd = FCNTL_ADJUST_CMD (cmd);++  if (cmd == F_SETLKW || cmd == F_SETLKW64)+    return SYSCALL_CANCEL (fcntl64, fd, cmd, (void *) arg);+   return fcntl_common (fd, cmd, arg); }-#endif+libc_hidden_def (__libc_fcntl) +#if !IS_IN (rtld) int-__libc_fcntl (int fd, int cmd, ...)+__fcntl_nocancel (int fd, int cmd, ...) {   va_list ap;   void *arg;@@ -71,14 +77,12 @@ __libc_fcntl (int fd, int cmd, ...)   arg = va_arg (ap, void *);   va_end (ap); -  cmd = FCNTL_ADJUST_CMD (cmd);--  if (cmd == F_SETLKW || cmd == F_SETLKW64)-    return SYSCALL_CANCEL (fcntl64, fd, cmd, (void *) arg);-   return fcntl_common (fd, cmd, arg); }-libc_hidden_def (__libc_fcntl)+#else+strong_alias (__libc_fcntl, __fcntl_nocancel)+#endif+libc_hidden_def (__fcntl_nocancel)  weak_alias (__libc_fcntl, __fcntl) libc_hidden_weak (__fcntl)diff --git a/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h b/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.hindex bf88ea5..8a85fc2 100644--- a/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h+++ b/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h@@ -38,7 +38,6 @@  /* This code should never be used but we define it anyhow.  */ # define SINGLE_THREAD_P (1)-# define NO_CANCELLATION 1  #endif /* IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt) */diff --git a/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h b/sysdeps/unix/sysv/linux/i386/sysdep-cancel.hindex 7ad851a..5c11983 100644--- a/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h+++ b/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h@@ -28,7 +28,6 @@ #else  # define SINGLE_THREAD_P (1)-# define NO_CANCELLATION 1  #endif diff --git a/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h b/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.hindex d3d02d4..fe5b35a 100644--- a/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h+++ b/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h@@ -25,7 +25,6 @@   __glibc_likely (THREAD_GETMEM (THREAD_SELF, header.multiple_threads) == 0) #else # define SINGLE_THREAD_P (1)-# define NO_CANCELLATION 1 #endif  #define RTLD_SINGLE_THREAD_P \diff --git a/sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h b/sysdeps/unix/sysv/linux/m68k/sysdep-cancel.hindex cf96c10..b192a68 100644--- a/sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h+++ b/sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h@@ -27,7 +27,6 @@ #else  # define SINGLE_THREAD_P (1)-# define NO_CANCELLATION (1)  #endif diff --git a/sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h b/sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.hindex 8655c9d..120ea06 100644--- a/sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h+++ b/sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h@@ -38,7 +38,6 @@ extern int __local_multiple_threads attribute_hidden; #else  # define SINGLE_THREAD_P (1)-# define NO_CANCELLATION (1)  #endif diff --git a/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h b/sysdeps/unix/sysv/linux/mips/sysdep-cancel.hindex 76d7ef4..31dbba0 100644--- a/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h+++ b/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h@@ -28,7 +28,6 @@ #else  # define SINGLE_THREAD_P 1-# define NO_CANCELLATION 1  #endif diff --git a/sysdeps/unix/sysv/linux/nios2/sysdep-cancel.h b/sysdeps/unix/sysv/linux/nios2/sysdep-cancel.hindex 73b6236..4e7f536 100644--- a/sysdeps/unix/sysv/linux/nios2/sysdep-cancel.h+++ b/sysdeps/unix/sysv/linux/nios2/sysdep-cancel.h@@ -28,7 +28,6 @@ #else  # define SINGLE_THREAD_P 1-# define NO_CANCELLATION 1  #endif diff --git a/sysdeps/unix/sysv/linux/not-cancel.h b/sysdeps/unix/sysv/linux/not-cancel.hindex ae0b059..8f4f338 100644--- a/sysdeps/unix/sysv/linux/not-cancel.h+++ b/sysdeps/unix/sysv/linux/not-cancel.h@@ -86,6 +86,7 @@ __typeof (__nanosleep) __nanosleep_nocancel; hidden_proto (__nanosleep_nocancel)  /* Uncancelable fcntl.  */-__typeof (__fcntl) __fcntl_nocancel attribute_hidden;+__typeof (__fcntl) __fcntl_nocancel;+libc_hidden_proto (__fcntl_nocancel)  #endif /* NOT_CANCEL_H  */diff --git a/sysdeps/unix/sysv/linux/powerpc/sysdep-cancel.h b/sysdeps/unix/sysv/linux/powerpc/sysdep-cancel.hindex 532df31..59f752f 100644--- a/sysdeps/unix/sysv/linux/powerpc/sysdep-cancel.h+++ b/sysdeps/unix/sysv/linux/powerpc/sysdep-cancel.h@@ -28,7 +28,6 @@ #else  # define SINGLE_THREAD_P (1)-# define NO_CANCELLATION 1  #endif diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.hindex 459b742..bd606d5 100644--- a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h+++ b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h@@ -28,7 +28,6 @@ #else  # define SINGLE_THREAD_P (1)-# define NO_CANCELLATION 1  #endif diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.hindex 99adad1..2283b86 100644--- a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h+++ b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h@@ -43,7 +43,6 @@ extern int __local_multiple_threads attribute_hidden; #else  # define SINGLE_THREAD_P (1)-# define NO_CANCELLATION 1  #endif diff --git a/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h b/sysdeps/unix/sysv/linux/sh/sysdep-cancel.hindex 3f880bd..b2deb11 100644--- a/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h+++ b/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h@@ -27,7 +27,6 @@ #else  # define SINGLE_THREAD_P (1)-# define NO_CANCELLATION 1  #endif diff --git a/sysdeps/unix/sysv/linux/sparc/sysdep-cancel.h b/sysdeps/unix/sysv/linux/sparc/sysdep-cancel.hindex 412b31a..7fe0dee 100644--- a/sysdeps/unix/sysv/linux/sparc/sysdep-cancel.h+++ b/sysdeps/unix/sysv/linux/sparc/sysdep-cancel.h@@ -28,7 +28,6 @@ #else  # define SINGLE_THREAD_P (1)-# define NO_CANCELLATION 1  #endif diff --git a/sysdeps/unix/sysv/linux/tile/sysdep-cancel.h b/sysdeps/unix/sysv/linux/tile/sysdep-cancel.hindex 277709f..a606b0c 100644--- a/sysdeps/unix/sysv/linux/tile/sysdep-cancel.h+++ b/sysdeps/unix/sysv/linux/tile/sysdep-cancel.h@@ -28,7 +28,6 @@ #else  # define SINGLE_THREAD_P 1-# define NO_CANCELLATION 1  #endif diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h b/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.hindex c1c0719..34f14c6 100644--- a/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h@@ -43,7 +43,6 @@ extern int __local_multiple_threads attribute_hidden; #else  # define SINGLE_THREAD_P (1)-# define NO_CANCELLATION 1  #endif -- 2.7.4

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav:[Date Prev] [Date Next][Thread Prev] [Thread Next]

[8]ページ先頭

©2009-2026 Movatter.jp