From patchwork Mon Aug 4 14:07:23 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Frysinger X-Patchwork-Id: 2295 Received: (qmail 21109 invoked by alias); 4 Aug 2014 14:07:26 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk 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 21099 invoked by uid 89); 4 Aug 2014 14:07:26 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.4 required=5.0 tests=AWL, BAYES_00, RP_MATCHES_RCVD, SPF_PASS autolearn=ham version=3.3.2 X-HELO: smtp.gentoo.org From: Mike Frysinger To: libc-alpha@sourceware.org Subject: [PATCH/committed] ia64: define nocancel entry points in PSEUDO Date: Mon, 4 Aug 2014 10:07:23 -0400 Message-Id: <1407161243-1717-1-git-send-email-vapier@gentoo.org> The previous set of not-cancel.h headers (prior to the commit 2fbdf5339aaeaa423bd661524f7ec7af41fa2606) did not require the arch to define nocancel entry points, so ia64 never did. However, after the various files were merged, it became a hard requirement for arches which mean ia64 failed to build. Here we add dedicated entry points. It'd be nice to merge with the existing stubs like other arches do, but the ia64 asm does not lend itself to interleaving of functions. If someone has a suggestion on merging these, that'd be great, but at least now we build & pass tests again. --- sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h b/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h index 5b08748..c44c484 100644 --- a/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h +++ b/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h @@ -121,6 +121,25 @@ ENTRY (name) \ (p6) br.cond.spnt.few __syscall_error; \ ret;; \ .endp name; \ + \ + .proc __##syscall_name##_nocancel; \ + .globl __##syscall_name##_nocancel; \ +__##syscall_name##_nocancel: \ + .prologue; \ + adds r2 = SYSINFO_OFFSET, r13; \ + .save ar.pfs, r11; \ + mov r11 = ar.pfs;; \ + .body; \ + ld8 r2 = [r2]; \ + mov r15 = SYS_ify(syscall_name);; \ + mov b7 = r2; \ + br.call.sptk.many b6 = b7;; \ + mov ar.pfs = r11; \ + cmp.eq p6,p0 = -1, r10; \ +(p6) br.cond.spnt.few __syscall_error; \ + ret;; \ + .endp __##syscall_name##_nocancel; \ + \ .proc __GC_##name; \ .globl __GC_##name; \ .hidden __GC_##name; \