From 96dffc26dcc3e7e2bfb489845249ea274510e777 Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Wed, 20 May 2015 16:37:52 -0300 Subject: [PATCH] i386: Remove six-argument specialized implementations This patch removes the specialized i386 assembly implementations for fallocate{64}, pselect, and sync_file_range now that i386 have support for 6 argument syscalls. --- ChangeLog | 10 ++++ sysdeps/unix/sysv/linux/i386/Makefile | 4 +- sysdeps/unix/sysv/linux/i386/call_pselect6.S | 64 -------------------- .../unix/sysv/linux/i386/call_sync_file_range.S | 70 ---------------------- sysdeps/unix/sysv/linux/i386/pselect.c | 18 ------ sysdeps/unix/sysv/linux/i386/sync_file_range.c | 43 ------------- 6 files changed, 12 insertions(+), 197 deletions(-) delete mode 100644 sysdeps/unix/sysv/linux/i386/call_pselect6.S delete mode 100644 sysdeps/unix/sysv/linux/i386/call_sync_file_range.S delete mode 100644 sysdeps/unix/sysv/linux/i386/pselect.c delete mode 100644 sysdeps/unix/sysv/linux/i386/sync_file_range.c diff --git a/ChangeLog b/ChangeLog index e13e166..0889f44 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2015-05-20 Adhemerval Zanella + + * sysdeps/unix/sysv/linux/i386/Makefile [$(subdir) = misc)]: Remove + call_pselect6 object. + [$(subdir) = io]: Remove call_sync_file_range object. + * sysdeps/unix/sysv/linux/i386/call_pselect6.S: Remove file. + * sysdeps/unix/sysv/linux/i386/call_sync_file_range.S: Remove file. + * sysdeps/unix/sysv/linux/i386/pselect.c: Remove file. + * sysdeps/unix/sysv/linux/i386/sync_file_range.c: Remove file. + 2015-05-20 Wilco Dijkstra * math/s_cproj.c: Add include "math_private.h". diff --git a/sysdeps/unix/sysv/linux/i386/Makefile b/sysdeps/unix/sysv/linux/i386/Makefile index e0fb1ed..80da593 100644 --- a/sysdeps/unix/sysv/linux/i386/Makefile +++ b/sysdeps/unix/sysv/linux/i386/Makefile @@ -2,7 +2,7 @@ default-abi := 32 ifeq ($(subdir),misc) -sysdep_routines += ioperm iopl vm86 call_pselect6 +sysdep_routines += ioperm iopl vm86 endif ifeq ($(subdir),elf) @@ -12,7 +12,7 @@ endif # fallocate, posix_fallocate use six-argument inline syscalls. ifeq ($(subdir),io) -sysdep_routines += call_sync_file_range libc-do-syscall +sysdep_routines += libc-do-syscall endif # libpthread uses six-argument inline syscalls. diff --git a/sysdeps/unix/sysv/linux/i386/call_pselect6.S b/sysdeps/unix/sysv/linux/i386/call_pselect6.S deleted file mode 100644 index 610c263..0000000 --- a/sysdeps/unix/sysv/linux/i386/call_pselect6.S +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright (C) 2006-2015 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 2006. - - 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 - . */ - -#include - -#ifdef __NR_pselect6 - .text -ENTRY(__call_pselect6) - .hidden __call_pselect6 - pushl %ebx - cfi_adjust_cfa_offset (4) - pushl %esi - cfi_adjust_cfa_offset (4) - pushl %edi - cfi_adjust_cfa_offset (4) - pushl %ebp - cfi_adjust_cfa_offset (4) - cfi_rel_offset (ebp, 0) - cfi_rel_offset (edi, 4) - cfi_rel_offset (esi, 8) - cfi_rel_offset (ebx, 12) - - movl $__NR_pselect6, %eax - movl 20(%esp), %ebx - movl 24(%esp), %ecx - movl 28(%esp), %edx - movl 32(%esp), %esi - movl 36(%esp), %edi - movl 40(%esp), %ebp - - /* The syscall handling cannot handle 6 parameters. Yet. */ - int $0x80 - - popl %ebp - cfi_adjust_cfa_offset (-4) - cfi_restore (ebp) - popl %edi - cfi_adjust_cfa_offset (-4) - cfi_restore (edi) - popl %esi - cfi_adjust_cfa_offset (-4) - cfi_restore (esi) - popl %ebx - cfi_adjust_cfa_offset (-4) - cfi_restore (ebx) - - ret -END(__call_pselect6) -#endif diff --git a/sysdeps/unix/sysv/linux/i386/call_sync_file_range.S b/sysdeps/unix/sysv/linux/i386/call_sync_file_range.S deleted file mode 100644 index 02c2048..0000000 --- a/sysdeps/unix/sysv/linux/i386/call_sync_file_range.S +++ /dev/null @@ -1,70 +0,0 @@ -/* Selective file content synch'ing. - Copyright (C) 2006-2015 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 - . */ - -#include -#define _ERRNO_H 1 -#include - - - .text -ENTRY (__call_sync_file_range) -#ifdef __NR_sync_file_range - pushl %ebx - cfi_adjust_cfa_offset (4) - pushl %esi - cfi_adjust_cfa_offset (4) - pushl %edi - cfi_adjust_cfa_offset (4) - pushl %ebp - cfi_adjust_cfa_offset (4) - - movl 20(%esp), %ebx - cfi_rel_offset (ebx, 12) - movl 24(%esp), %ecx - movl 28(%esp), %edx - movl 32(%esp), %esi - cfi_rel_offset (esi, 8) - movl 36(%esp), %edi - cfi_rel_offset (edi, 4) - movl 40(%esp), %ebp - cfi_rel_offset (ebp, 0) - - movl $SYS_ify(sync_file_range), %eax - ENTER_KERNEL - - popl %ebp - cfi_adjust_cfa_offset (-4) - cfi_restore (ebp) - popl %edi - cfi_adjust_cfa_offset (-4) - cfi_restore (edi) - popl %esi - cfi_adjust_cfa_offset (-4) - cfi_restore (esi) - popl %ebx - cfi_adjust_cfa_offset (-4) - cfi_restore (ebx) - - cmpl $-4095, %eax - jae SYSCALL_ERROR_LABEL -#else - movl $-ENOSYS, %eax - jmp SYSCALL_ERROR_LABEL -#endif - ret -PSEUDO_END (__call_sync_file_range) diff --git a/sysdeps/unix/sysv/linux/i386/pselect.c b/sysdeps/unix/sysv/linux/i386/pselect.c deleted file mode 100644 index 2646608..0000000 --- a/sysdeps/unix/sysv/linux/i386/pselect.c +++ /dev/null @@ -1,18 +0,0 @@ -#include - -extern int __call_pselect6 (int nfds, fd_set *readfds, fd_set *writefds, - fd_set *exceptfds, const struct timespec *timeout, - void *data) attribute_hidden; - - -#define CALL_PSELECT6(nfds, readfds, writefds, exceptfds, timeout, data) \ - ({ int r = __call_pselect6 (nfds, readfds, writefds, exceptfds, timeout, \ - data); \ - if (r < 0 && r > -4096) \ - { \ - __set_errno (-r); \ - r = -1; \ - } \ - r; }) - -#include "../pselect.c" diff --git a/sysdeps/unix/sysv/linux/i386/sync_file_range.c b/sysdeps/unix/sysv/linux/i386/sync_file_range.c deleted file mode 100644 index 8ce0287..0000000 --- a/sysdeps/unix/sysv/linux/i386/sync_file_range.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Selective file content synch'ing. - Copyright (C) 2006-2015 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 - . */ - -#include -#include -#include - - -extern int __call_sync_file_range (int fd, off64_t offset, off64_t nbytes, - unsigned int flags) - attribute_hidden; - - -int -sync_file_range (int fd, __off64_t from, __off64_t to, unsigned int flags) -{ - if (SINGLE_THREAD_P) - return __call_sync_file_range (fd, from, to, flags); - - int result; - int oldtype = LIBC_CANCEL_ASYNC (); - - result = __call_sync_file_range (fd, from, to, flags); - - LIBC_CANCEL_RESET (oldtype); - - return result; -} -- 2.7.4