From patchwork Wed May 20 14:10:33 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adhemerval Zanella X-Patchwork-Id: 48802 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-wi0-f197.google.com (mail-wi0-f197.google.com [209.85.212.197]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 61A2B2121F for ; Wed, 20 May 2015 14:11:02 +0000 (UTC) Received: by wixv7 with SMTP id v7sf20790351wix.0 for ; Wed, 20 May 2015 07:11:01 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:delivered-to:mailing-list:precedence:list-id :list-unsubscribe:list-subscribe:list-archive:list-post:list-help :sender:delivered-to:message-id:date:from:user-agent:mime-version:to :subject:content-type:content-transfer-encoding:x-original-sender :x-original-authentication-results; bh=pPjXg1K0Co9QUYorRkJnZAsSGQU9RKf4EeJP6CfwRkw=; b=br+Gyn2ama0vzplDDUxdDoxYA5ojM8/Lj1RTIWE4xNM0bcxZZ4MXBFKkOd9L3TWuK5 qrPv4uhAmBHVVMAeZ7Ha6Ml9p1/C0wAKc4S/4si2Idib5e8d8Fwz+dHW49dr+J44DPkh L45wKbuqIhzgAAsBBpv3M0kiHlUQAjjC1bCmn5QMIQwNgatoPYdziFTvPhbMZxwGWAW0 uP5p8t9oLGtEorheCG2ZTw1Ru6WyNX94H4/ieKtrjPZAoeV4nlsR40Mr2Rjd3h+EdfM8 bLGh9sI3NfYJOjIZAbWuzYwmmzRw27b84R30GoufB5gYTHvYcFSDXz+/ZR40BME7bb2/ DHtw== X-Gm-Message-State: ALoCoQl2A4GhVMDTH1JDoSkNcUeogowadVGGHPc9IBQkLkKKweUoPuNJAgdlcYPdZdBL85JMD/tc X-Received: by 10.112.28.111 with SMTP id a15mr26548968lbh.21.1432131061674; Wed, 20 May 2015 07:11:01 -0700 (PDT) X-BeenThere: patchwork-forward@linaro.org Received: by 10.152.205.70 with SMTP id le6ls205535lac.50.gmail; Wed, 20 May 2015 07:11:01 -0700 (PDT) X-Received: by 10.112.50.236 with SMTP id f12mr5374370lbo.89.1432131061529; Wed, 20 May 2015 07:11:01 -0700 (PDT) Received: from mail-la0-x22e.google.com (mail-la0-x22e.google.com. [2a00:1450:4010:c03::22e]) by mx.google.com with ESMTPS id t7si11235258lat.105.2015.05.20.07.11.01 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 20 May 2015 07:11:01 -0700 (PDT) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 2a00:1450:4010:c03::22e as permitted sender) client-ip=2a00:1450:4010:c03::22e; Received: by labbd9 with SMTP id bd9so76337757lab.2 for ; Wed, 20 May 2015 07:11:01 -0700 (PDT) X-Received: by 10.152.4.137 with SMTP id k9mr25634915lak.29.1432131061396; Wed, 20 May 2015 07:11:01 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.112.108.230 with SMTP id hn6csp1559434lbb; Wed, 20 May 2015 07:10:59 -0700 (PDT) X-Received: by 10.70.92.34 with SMTP id cj2mr64962638pdb.116.1432131058450; Wed, 20 May 2015 07:10:58 -0700 (PDT) Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id a13si23585352pbu.153.2015.05.20.07.10.57 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 20 May 2015 07:10:58 -0700 (PDT) Received-SPF: pass (google.com: domain of libc-alpha-return-59070-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Received: (qmail 55397 invoked by alias); 20 May 2015 14:10:40 -0000 Mailing-List: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org Precedence: list List-Id: List-Unsubscribe: , List-Subscribe: List-Archive: List-Post: , List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 55340 invoked by uid 89); 20 May 2015 14:10:40 -0000 X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.3 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-qk0-f180.google.com X-Received: by 10.55.41.166 with SMTP id p38mr24230713qkp.93.1432131035995; Wed, 20 May 2015 07:10:35 -0700 (PDT) Message-ID: <555C95D9.4060900@linaro.org> Date: Wed, 20 May 2015 11:10:33 -0300 From: Adhemerval Zanella User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: GNU C Library Subject: [PATCH] i386: Remove six-argument specialized implementations X-Original-Sender: adhemerval.zanella@linaro.org X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 2a00:1450:4010:c03::22e as permitted sender) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org; dkim=pass header.i=@sourceware.org X-Google-Group-Id: 836684582541 Hi This patch is another of the required adjustments for the fix for bz12683 (Race conditions in pthread cancellation) and the idea is to remove the i386 assembly implementation for 6 arguments syscall now that GLIBC has internal support to allow it through default C code. 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. Tested on i386. --- * 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. --- 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; -}