+2017-08-31 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * 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): Add
+ hidden prototype.
+ * sysdeps/unix/sysv/linux/fcntl.c (__fcntl_nocancel): Define only
+ for !IS_IN (rtld) and remove NO_CANCELLATION usage.
+
2017-08-31 Steve Ellcey <sellcey@cavium.com>
* sysdeps/aarch64/dl-irel.h: (elf_ifunc_invoke): Change argument type
__nanosleep (requested_time, remaining)
#define __fcntl_nocancel(fd, cmd, ...) \
__fcntl (fd, cmd, __VA_ARGS__)
-
-#define NO_CANCELLATION 1
/* For rtld, et cetera. */
# define SINGLE_THREAD_P 1
-# define NO_CANCELLATION 1
#endif
#else
# define SINGLE_THREAD_P (1)
-# define NO_CANCELLATION 1
#endif
/* For rtld, et cetera. */
# define SINGLE_THREAD_P 1
-# define NO_CANCELLATION 1
#endif
#include <stdarg.h>
#include <errno.h>
#include <sysdep-cancel.h>
+#include <not-cancel.h>
#ifndef __NR_fcntl64
# define __NR_fcntl64 __NR_fcntl
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;
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;
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)
/* 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) */
#else
# define SINGLE_THREAD_P (1)
-# define NO_CANCELLATION 1
#endif
__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 \
#else
# define SINGLE_THREAD_P (1)
-# define NO_CANCELLATION (1)
#endif
#else
# define SINGLE_THREAD_P (1)
-# define NO_CANCELLATION (1)
#endif
#else
# define SINGLE_THREAD_P 1
-# define NO_CANCELLATION 1
#endif
#else
# define SINGLE_THREAD_P 1
-# define NO_CANCELLATION 1
#endif
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 */
#else
# define SINGLE_THREAD_P (1)
-# define NO_CANCELLATION 1
#endif
#else
# define SINGLE_THREAD_P (1)
-# define NO_CANCELLATION 1
#endif
#else
# define SINGLE_THREAD_P (1)
-# define NO_CANCELLATION 1
#endif
#else
# define SINGLE_THREAD_P (1)
-# define NO_CANCELLATION 1
#endif
#else
# define SINGLE_THREAD_P (1)
-# define NO_CANCELLATION 1
#endif
#else
# define SINGLE_THREAD_P 1
-# define NO_CANCELLATION 1
#endif
#else
# define SINGLE_THREAD_P (1)
-# define NO_CANCELLATION 1
#endif