From patchwork Fri May 9 23:01:35 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roland McGrath X-Patchwork-Id: 347572 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id EB3FD1400A8 for ; Sat, 10 May 2014 09:01:45 +1000 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:mime-version:content-type :content-transfer-encoding:from:to:subject:message-id:date; q= dns; s=default; b=E/PYLkRFfIaRLy5vjOk/a+leJj8FwR341fJKhxbZepPy/T 14aNqHnUWqc8nli2G8h6mwvc5SC3bMmhGXpt7hntKC6n1R3vu2wUYHbnBMmNSUwb jP/BYcfLED1kye34j1z0ZvRkB0EZ2Ybfkl0tx/hn2/7fChlz5TFeAwrav99Ys= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:mime-version:content-type :content-transfer-encoding:from:to:subject:message-id:date; s= default; bh=dmhpU46HFAJteSbH2Fw5s2YU3og=; b=NUPRB869cAD9bYsxuj6s Sm8/ZvRgp9S5H5wG9nu0QYmhB9rDFuqHS8oJTVAtPYFfJPulgikzQ1lCjQqakWXm tx6rMUKeCKAvFM86+6tlsqmco8WLa+T9xyXHHKUyudvP2uCFSYLtJPAYMWKz8NT0 3c61AUgds3fg6+rsgoR51Sw= Received: (qmail 19322 invoked by alias); 9 May 2014 23:01:40 -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 19310 invoked by uid 89); 9 May 2014 23:01:40 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.3 required=5.0 tests=AWL, BAYES_00 autolearn=ham version=3.3.2 X-HELO: topped-with-meat.com MIME-Version: 1.0 From: Roland McGrath To: "GNU C. Library" Subject: [PATCH 2/3 roland/nptl] Consolidate NPTL configury for ARM/Linux. Message-Id: <20140509230135.8CBC52C39FE@topped-with-meat.com> Date: Fri, 9 May 2014 16:01:35 -0700 (PDT) X-CMAE-Score: 0 X-CMAE-Analysis: v=2.1 cv=J405smXS c=1 sm=1 tr=0 a=WkljmVdYkabdwxfqvArNOQ==:117 a=14OXPxybAAAA:8 a=U94qnJcMCK8A:10 a=Z6MIti7PxpgA:10 a=kj9zAlcOel0A:10 a=hOe2yjtxAAAA:8 a=FUzoD0mt3CCLVW8nSGYA:9 a=CjuIK1q_8ugA:10 * sysdeps/unix/sysv/linux/arm/Versions (libc: GLIBC_PRIVATE): New set. * sysdeps/unix/sysv/linux/arm/nptl/Versions: File removed. * sysdeps/unix/sysv/linux/arm/Makefile [$(subdir) = rt] (librt-sysdep_routines, librt-shared-only-routines): Add rt-aeabi_unwind_cpp_pr1. [$(subdir) = nptl] (librt-sysdep_routines, librt-shared-only-routines): Add nptl-aeabi_unwind_cpp_pr1. [$(subdir) = nptl] (tests): Filter out tst-cleanupx4. * sysdeps/unix/sysv/linux/arm/nptl/Makefile: File removed. * sysdeps/unix/sysv/linux/arm/nptl/rt-aeabi_unwind_cpp_pr1.c: Move ... * sysdeps/unix/sysv/linux/arm/rt-aeabi_unwind_cpp_pr1.c: ... here. * sysdeps/unix/sysv/linux/arm/nptl/nptl-aeabi_unwind_cpp_pr1.c: Move ... * sysdeps/unix/sysv/linux/arm/nptl-aeabi_unwind_cpp_pr1.c: ... here. * sysdeps/unix/sysv/linux/arm/configure.ac: Force -fexceptions here. * sysdeps/unix/sysv/linux/arm/configure: Regenerated. * sysdeps/unix/sysv/linux/arm/nptl/configure.ac: File removed. * sysdeps/unix/sysv/linux/arm/nptl/configure: File removed. --- a/sysdeps/unix/sysv/linux/arm/Makefile +++ b/sysdeps/unix/sysv/linux/arm/Makefile @@ -37,13 +37,21 @@ libcrypt-sysdep_routines += libc-do-syscall endif ifeq ($(subdir),rt) -librt-sysdep_routines += libc-do-syscall -librt-shared-only-routines += libc-do-syscall +librt-sysdep_routines += libc-do-syscall rt-aeabi_unwind_cpp_pr1 +librt-shared-only-routines += libc-do-syscall rt-aeabi_unwind_cpp_pr1 endif ifeq ($(subdir),nptl) -libpthread-sysdep_routines += libc-do-syscall -libpthread-shared-only-routines += libc-do-syscall +libpthread-sysdep_routines += libc-do-syscall nptl-aeabi_unwind_cpp_pr1 +libpthread-shared-only-routines += libc-do-syscall nptl-aeabi_unwind_cpp_pr1 + +# This test relies on compiling part of the binary with EH information, +# part without, and unwinding through. The .ARM.exidx tables have +# start addresses for EH regions, but no end addresses. Every +# region an exception needs to propogate through must have unwind +# information, or a previous function's unwind table may be used +# by mistake. +tests := $(filter-out tst-cleanupx4,$(tests)) endif ifeq ($(subdir),resolv) --- a/sysdeps/unix/sysv/linux/arm/Versions +++ b/sysdeps/unix/sysv/linux/arm/Versions @@ -37,4 +37,10 @@ libc { GLIBC_2.11 { fallocate64; } + GLIBC_PRIVATE { + # A copy of sigaction lives in libpthread, and needs these. + __default_sa_restorer; __default_rt_sa_restorer; + __default_sa_restorer_v1; __default_rt_sa_restorer_v1; + __default_sa_restorer_v2; __default_rt_sa_restorer_v2; + } } --- a/sysdeps/unix/sysv/linux/arm/configure +++ b/sysdeps/unix/sysv/linux/arm/configure @@ -4,3 +4,6 @@ libc_cv_gcc_unwind_find_fde=no # Remove -fno-unwind-tables that was added in sysdeps/arm/preconfigure.ac. CFLAGS=${CFLAGS% -fno-unwind-tables} + +libc_cv_gcc_exceptions=yes +exceptions=-fexceptions --- a/sysdeps/unix/sysv/linux/arm/configure.ac +++ b/sysdeps/unix/sysv/linux/arm/configure.ac @@ -4,3 +4,9 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. libc_cv_gcc_unwind_find_fde=no # Remove -fno-unwind-tables that was added in sysdeps/arm/preconfigure.ac. CFLAGS=${CFLAGS% -fno-unwind-tables} + +dnl The normal configure check for gcc -fexecptions fails because it can't +dnl find __aeabi_unwind_cpp_pr0. Work around this here; our GCC definitely +dnl has -fexceptions. +libc_cv_gcc_exceptions=yes +exceptions=-fexceptions --- a/sysdeps/unix/sysv/linux/arm/nptl/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -ifeq ($(subdir),rt) -librt-sysdep_routines += rt-aeabi_unwind_cpp_pr1 -librt-shared-only-routines += rt-aeabi_unwind_cpp_pr1 -endif - -ifeq ($(subdir),nptl) -libpthread-sysdep_routines += nptl-aeabi_unwind_cpp_pr1 -libpthread-shared-only-routines += nptl-aeabi_unwind_cpp_pr1 - -# This test relies on compiling part of the binary with EH information, -# part without, and unwinding through. The .ARM.exidx tables have -# start addresses for EH regions, but no end addresses. Every -# region an exception needs to propogate through must have unwind -# information, or a previous function's unwind table may be used -# by mistake. -tests := $(filter-out tst-cleanupx4,$(tests)) -endif --- a/sysdeps/unix/sysv/linux/arm/nptl/Versions +++ /dev/null @@ -1,8 +0,0 @@ -libc { - GLIBC_PRIVATE { - # A copy of sigaction lives in NPTL, and needs these. - __default_sa_restorer; __default_rt_sa_restorer; - __default_sa_restorer_v1; __default_rt_sa_restorer_v1; - __default_sa_restorer_v2; __default_rt_sa_restorer_v2; - } -} --- a/sysdeps/unix/sysv/linux/arm/nptl/configure +++ /dev/null @@ -1,4 +0,0 @@ -# This file is generated from configure.ac by Autoconf. DO NOT EDIT! - -libc_cv_gcc_exceptions=yes -exceptions=-fexceptions --- a/sysdeps/unix/sysv/linux/arm/nptl/configure.ac +++ /dev/null @@ -1,8 +0,0 @@ -dnl configure fragment for NPTL and ARM/Linux EABI. -GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. - -dnl The normal configure check for gcc -fexecptions fails because it can't -dnl find __aeabi_unwind_cpp_pr0. Work around this here; our GCC definitely -dnl has -fexceptions. -libc_cv_gcc_exceptions=yes -exceptions=-fexceptions