From patchwork Mon Sep 9 15:44:42 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christophe Lyon X-Patchwork-Id: 173389 Delivered-To: patch@linaro.org Received: by 2002:a05:6e02:ce:0:0:0:0 with SMTP id r14csp4533796ilq; Mon, 9 Sep 2019 08:46:03 -0700 (PDT) X-Google-Smtp-Source: APXvYqzY75Z6Q+6Fed5fM7WdHro2ZpTqmTPkB/gydtLdHc6K8UKELeXVkdDZUbLOGDTplCKwugvY X-Received: by 2002:a50:f09d:: with SMTP id v29mr24542749edl.4.1568043963788; Mon, 09 Sep 2019 08:46:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1568043963; cv=none; d=google.com; s=arc-20160816; b=adnKmuFTBOgqi6jn0ZJlwmCZcqcgNXaoJIxesQD1q9bIA/MrjYt9H3MhtRnE5H85KV u5yN4d4v8nuvzapZWoAs2uGdfOsOyom8zTZzBTqtq4wtSilAkVHEO697pye7ORN8x095 zDFyw158AN/+LtTioMUZOzicxceeoj/Yu0TlO+TEUtRJdyoZrk6G/YdHU8mJ9mfD8OKx 6X3MGE8m3Hb24Vt+kOfzWHamYXAbA6ainXb/CSByw5Ch3vsyDySuNqqre6tgK4qbtuyD efNiSRUyqBYsNI1IrpM9R9bPAgx/TLiDBpuFEJqoWvUuBHdAd2l9VVxLDIErXtgfX5Pc as5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:dkim-signature:delivered-to:sender:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:mailing-list :dkim-signature:domainkey-signature; bh=kWsVApMoFTrsOck9dguGlROupLC0/YfwaxGzMgQuOPg=; b=0pQ825r86RZy3YMg9JQbA5M/g9wN+oaXZzP3bFZOi0yQPglzSsSQDqAnbEdEpfM940 wxmk4m1izympdaqmHf6zqwpGcDTvo6uwyiviJ/b77wJU7IOOlHK1zRETxMd6MUlKOMpt iMZpPMQmKwSz22BEunjuBu8ScTKIoj9PykEWFyE7BeP2NP0+31kH/Xrc4JDscE0bVUZb YFdnmoBaHncJV36zQyyxe3S+sitTLjR8Et5C2ggL/KJ7LzmUEqAAn7QUlVUFUd73XdmB EBCaAE8pgFS6HDfjpLnpZMg4vv/mCzxP75zN+FAJON7+oqKYBerzHpvOqRSn7epUYPd5 qA9A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=TU7RTONq; dkim=pass header.i=@st.com header.s=STMicroelectronics header.b=urV1dkrw; spf=pass (google.com: domain of gcc-patches-return-508642-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) smtp.mailfrom="gcc-patches-return-508642-patch=linaro.org@gcc.gnu.org" Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id g23si6890122edr.147.2019.09.09.08.46.02 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 09 Sep 2019 08:46:03 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-return-508642-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=TU7RTONq; dkim=pass header.i=@st.com header.s=STMicroelectronics header.b=urV1dkrw; spf=pass (google.com: domain of gcc-patches-return-508642-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) smtp.mailfrom="gcc-patches-return-508642-patch=linaro.org@gcc.gnu.org" DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:subject:date:message-id:mime-version:content-type :content-transfer-encoding; q=dns; s=default; b=vzRFdkfexwGgXgVs N0BTiSyUR6hud37rS37GiPddxYfuGtWKd/IXDq0CkrUrMYP6SrgqAoJkF6dzI0pB 9L/czO76Tq8OJMW3/Fxs39m9UqTFivyzeZGpxvA1oDdK/NOHfGbkBBvgNoONe2MA NgfEJNk+sMVWI3i8/LhEQVI4tm0= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:subject:date:message-id:mime-version:content-type :content-transfer-encoding; s=default; bh=UK0M5JU2klMR/FKItFCoX0 5P1Do=; b=TU7RTONqrwr02GMON6gM69hNt8a5x7gCUjLNoTyz5u2AXc6YIfebR/ OKKNIzBm3abADqGM0oZN2qIAso6Fg6LU48TabpXnx2bYDQF46tKZvcc2nZjJhhli wcKLKDSRt2GTEGUAOzHzalCthfyt/4AdMaAjSJ2gaw1sfuL4ynM2g= Received: (qmail 108353 invoked by alias); 9 Sep 2019 15:45:50 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 108344 invoked by uid 89); 9 Sep 2019 15:45:49 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-19.2 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_2, GIT_PATCH_3, KAM_SHORT, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.1 spammy=sync-4.C, sync4c, sync4C, sync-4.c X-HELO: mx07-00178001.pphosted.com Received: from mx08-00178001.pphosted.com (HELO mx07-00178001.pphosted.com) (91.207.212.93) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 09 Sep 2019 15:45:46 +0000 Received: from pps.filterd (m0046660.ppops.net [127.0.0.1]) by mx08-00178001.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x89Fg6O9028579 for ; Mon, 9 Sep 2019 17:45:43 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=st.com; h=from : to : subject : date : message-id : mime-version : content-type : content-transfer-encoding; s=STMicroelectronics; bh=kWsVApMoFTrsOck9dguGlROupLC0/YfwaxGzMgQuOPg=; b=urV1dkrw4B0l/jm3T5B/sXZ2HoONmkSxGmZYehtICk7JscqTLGUAeBJE2pE3TPr4Y93W 4JeX7tsXcnjrfDq/7kzoUZNfB6tq//aW0bsaRVOzSABFNUi+HkOrCFX+1AGDmm9Ecmwe Orst/J37B1srogDlHwQcgqmTBUcVLyieeuY788TLL/8qmR+Nx7rtdbgvtXZvML5pv6Nq RCHJ/DcNrEi+KTSXtpcQCun+dq7MciviaiT5b3hZ+6oBDarQL4FJTozf12eNjvUa22YI Azq/hGIgv1fkK0QOdQ2QwVY0rbUf4lnI33n2RtxMslDwqOfERrK76ISU2xwX6Sg+PZMg cg== Received: from beta.dmz-ap.st.com (beta.dmz-ap.st.com [138.198.100.35]) by mx08-00178001.pphosted.com with ESMTP id 2uv1pa703p-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT) for ; Mon, 09 Sep 2019 17:45:43 +0200 Received: from euls16034.sgp.st.com (euls16034.sgp.st.com [10.75.44.20]) by beta.dmz-ap.st.com (STMicroelectronics) with ESMTP id DBDF759 for ; Mon, 9 Sep 2019 15:45:33 +0000 (GMT) Received: from Webmail-eu.st.com (sfhdag5node1.st.com [10.75.127.13]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id 16B582B9BC6 for ; Mon, 9 Sep 2019 17:45:33 +0200 (CEST) Received: from gnb.st.com (10.75.127.46) by SFHDAG5NODE1.st.com (10.75.127.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Mon, 9 Sep 2019 17:45:32 +0200 From: Christophe Lyon To: Subject: [ARM/FDPIC v6 00/24] FDPIC ABI for ARM Date: Mon, 9 Sep 2019 17:44:42 +0200 Message-ID: <20190909154526.11630-1-christophe.lyon@st.com> MIME-Version: 1.0 X-IsSubscribed: yes Hello, Since all patches of v5 have now been approved, I'm posting v6 to share the actual patches I'm about to commit (some had minor changes compared to v5). Thanks to the reviewers, Christophe Changes between v5 and v6: - rebased on top of recent gcc-10 master (September 9th, 2019) - fixed libitm support - addressed feedback received about v5 - there are 3 more patches (skip tests that use -static, libitm fixes, split of libstdc++ configury) Changes between v4 and v5: - rebased on top of recent gcc-10 master (April 26th, 2019) - fixed handling of stack-protector combined patterns in FDPIC mode Changes between v3 and v4: - improved documentation (patch 1) - emit an error message (sorry) if the target architecture does not support arm nor thumb-2 modes (patch 4) - handle Richard's comments on patch 4 (comments, unspec) - added .align directive (patch 5) - fixed use of kernel helpers (__kernel_cmpxchg, __kernel_dmb) (patch 6) - code factorization in patch 7 - typos/internal function name in patch 8 - improved patch 12 - dropped patch 16 - patch 20 introduces arm_arch*_thumb_ok effective targets to help skip some tests - I tested patch 2 on xtensa-buildroot-uclinux-uclibc, it adds many new tests, but a few regressions (https://gcc.gnu.org/ml/gcc-patches/2018-11/msg00713.html) - I compiled and executed several LTP tests to exercise pthreads and signals - I wrote and executed a simple testcase to change the interaction with __kernel_cmpxchg (ie. call the kernel helper rather than use an implementation in libgcc as requested by Richard) Changes between v2 and v3: - added doc entry for -mfdpic new option - took Kyrill's comments into account (use "Armv7" instead of "7", code factorization, use preprocessor instead of hard-coding "r9", remove leftover code for thumb1 support, fixed comments) - rebase over recent trunk - patches with changes: 1, 2 (commit message), 3 (rebase), 4, 6, 7, 9, 14 (rebase), 19 (rebase) Changes between v1 and v2: - fix GNU coding style - exit with an error for pre-Armv7 - use ACLE __ARM_ARCH and remove dead code for pre-Armv4 - remove unsupported attempts of pre-Armv7/thumb1 support - add instructions in comments next to opcodes - merge patches 11 and 13 - fixed protected visibility handling in patch 8 - merged legitimize_tls_address_fdpic and legitimize_tls_address_not_fdpic as requested This patch series implements the GCC contribution of the FDPIC ABI for ARM targets. This ABI enables to run Linux on ARM MMU-less cores and supports shared libraries to reduce the memory footprint. Without MMU, text and data segments relative distances are different from one process to another, hence the need for a dedicated FDPIC register holding the start address of the data segment. One of the side effects is that function pointers require two words to be represented: the address of the code, and the data segment start address. These two words are designated as "Function Descriptor", hence the "FD PIC" name. On ARM, the FDPIC register is r9 [1], and the target name is arm-uclinuxfdpiceabi. Note that arm-uclinux exists, but uses another ABI and the BFLAT file format; it does not support code sharing. The -mfdpic option is enabled by default, and -mno-fdpic should be used to build the Linux kernel. This work was developed some time ago by STMicroelectronics, and was presented during Linaro Connect SFO15 (September 2015). You can watch the discussion and read the slides [2]. This presentation was related to the toolchain published on github [3], which is based on binutils-2.22, gcc-4.7, uclibc-0.9.33.2, gdb-7.5.1 and qemu-2.3.0, and for which pre-built binaries are available [3]. The ABI itself is described in details in [1]. Our Linux kernel patches have been updated and committed by Nicolas Pitre (Linaro) in July 2017. They are required so that the loader is able to handle this new file type. Indeed, the ELF files are tagged with ELFOSABI_ARM_FDPIC. This new tag has been allocated by ARM, as well as the new relocations involved. The binutils, QEMU and uclibc-ng patch series have been merged a few months ago. [4][5][6] This series provides support for architectures that support ARM and/or Thumb-2 and has been tested on arm-linux-gnueabi without regression, as well as arm-uclinuxfdpiceabi, using QEMU. arm-uclinuxfdpiceabi has a few more failures than arm-linux-gnueabi, but is quite functional. I have also booted an STM32 board (stm32f469) which uses a cortex-m4 with linux-4.20.17 and ran successfully several tools. Thanks, Christophe. [1] https://github.com/mickael-guene/fdpic_doc/blob/master/abi.txt [2] http://connect.linaro.org/resource/sfo15/sfo15-406-arm-fdpic-toolset-kernel-libraries-for-cortex-m-cortex-r-mmuless-cores/ [3] https://github.com/mickael-guene/fdpic_manifest [4] https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=f1ac0afe481e83c9a33f247b81fa7de789edc4d9 [5] https://git.qemu.org/?p=qemu.git;a=commit;h=e8fa72957419c11984608062c7dcb204a6003a06 [6] https://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/commit/?id=13c46fbc1e5a021f2b9ed32d83aecc93ae5e655d Christophe Lyon (24): [ARM] FDPIC: Add -mfdpic option support [ARM] FDPIC: Handle arm*-*-uclinuxfdpiceabi in configure scripts [ARM] FDPIC: Force FDPIC related options unless -mno-fdpic is provided [ARM] FDPIC: Add support for FDPIC for arm architecture [ARM] FDPIC: Fix __do_global_dtors_aux and frame_dummy generation [ARM] FDPIC: Add support for c++ exceptions [ARM] FDPIC: Avoid saving/restoring r9 on stack since it is read-only [ARM] FDPIC: Enforce local/global binding for function descriptors [ARM] FDPIC: Add support for taking address of nested function [ARM] FDPIC: Implement TLS support. [ARM] FDPIC: Add support to unwind FDPIC signal frame [ARM] FDPIC: Restore r9 after we call __aeabi_read_tp [ARM] FDPIC: Force LSB bit for PC in Cortex-M architecture [ARM][testsuite] FDPIC: Skip unsupported tests [ARM][testsuite] FDPIC: Adjust scan-assembler patterns. [ARM][testsuite] FDPIC: Skip tests that don't work in PIC mode [ARM][testsuite] FDPIC: Handle *-*-uclinux* [ARM][testsuite] FDPIC: Enable tests on pie_enabled targets [ARM][testsuite] FDPIC: Adjust pr43698.c to avoid clash with uclibc. [ARM][testsuite] FDPIC: Skip tests using architectures unsupported by FDPIC [ARM] FDPIC: Handle stack-protector combined patterns [ARM][testsuite] FDPIC: Skip tests that require -static support [ARM] FDPIC: Implement libitm support. [ARM] FDPIC: Handle arm*-*-uclinuxfdpiceabi in libstdc++ configure scripts config/futex.m4 | 2 +- config/tls.m4 | 2 +- gcc/config.gcc | 11 +- gcc/config/arm/arm-c.c | 2 + gcc/config/arm/arm-protos.h | 1 + gcc/config/arm/arm.c | 484 ++++++++++++++++++--- gcc/config/arm/arm.h | 16 +- gcc/config/arm/arm.md | 83 +++- gcc/config/arm/arm.opt | 4 + gcc/config/arm/bpabi.h | 5 +- gcc/config/arm/linux-eabi.h | 7 +- gcc/config/arm/uclinuxfdpiceabi.h | 54 +++ gcc/config/arm/unspecs.md | 1 + gcc/doc/invoke.texi | 24 +- gcc/ginclude/unwind-arm-common.h | 2 +- gcc/testsuite/g++.dg/abi/forced.C | 2 +- gcc/testsuite/g++.dg/abi/guard2.C | 2 +- gcc/testsuite/g++.dg/cpp0x/noexcept03.C | 2 +- gcc/testsuite/g++.dg/ext/cleanup-10.C | 2 +- gcc/testsuite/g++.dg/ext/cleanup-11.C | 2 +- gcc/testsuite/g++.dg/ext/cleanup-8.C | 2 +- gcc/testsuite/g++.dg/ext/cleanup-9.C | 2 +- gcc/testsuite/g++.dg/ext/sync-4.C | 2 +- gcc/testsuite/g++.dg/ipa/comdat.C | 2 +- gcc/testsuite/g++.dg/ipa/devirt-c-7.C | 3 +- gcc/testsuite/g++.dg/ipa/ivinline-1.C | 2 +- gcc/testsuite/g++.dg/ipa/ivinline-2.C | 2 +- gcc/testsuite/g++.dg/ipa/ivinline-3.C | 2 +- gcc/testsuite/g++.dg/ipa/ivinline-4.C | 2 +- gcc/testsuite/g++.dg/ipa/ivinline-5.C | 2 +- gcc/testsuite/g++.dg/ipa/ivinline-7.C | 2 +- gcc/testsuite/g++.dg/ipa/ivinline-8.C | 2 +- gcc/testsuite/g++.dg/ipa/ivinline-9.C | 2 +- gcc/testsuite/g++.dg/other/anon5.C | 1 + gcc/testsuite/g++.dg/tls/pr79288.C | 2 +- gcc/testsuite/gcc.c-torture/compile/pr82096.c | 2 +- gcc/testsuite/gcc.dg/20020312-2.c | 1 + gcc/testsuite/gcc.dg/20041106-1.c | 2 +- gcc/testsuite/gcc.dg/addr_equal-1.c | 3 +- gcc/testsuite/gcc.dg/cleanup-10.c | 2 +- gcc/testsuite/gcc.dg/cleanup-11.c | 2 +- gcc/testsuite/gcc.dg/cleanup-8.c | 2 +- gcc/testsuite/gcc.dg/cleanup-9.c | 2 +- gcc/testsuite/gcc.dg/const-1.c | 2 +- gcc/testsuite/gcc.dg/fdata-sections-1.c | 2 +- gcc/testsuite/gcc.dg/fdata-sections-2.c | 2 +- gcc/testsuite/gcc.dg/ipa/pure-const-1.c | 2 +- gcc/testsuite/gcc.dg/noreturn-8.c | 2 +- gcc/testsuite/gcc.dg/pr33826.c | 3 +- gcc/testsuite/gcc.dg/pr39323-1.c | 2 +- gcc/testsuite/gcc.dg/pr39323-2.c | 2 +- gcc/testsuite/gcc.dg/pr39323-3.c | 2 +- gcc/testsuite/gcc.dg/pr65780-1.c | 2 +- gcc/testsuite/gcc.dg/pr65780-2.c | 2 +- gcc/testsuite/gcc.dg/pr67338.c | 2 +- gcc/testsuite/gcc.dg/pr78185.c | 2 +- gcc/testsuite/gcc.dg/pr83100-1.c | 2 +- gcc/testsuite/gcc.dg/pr83100-4.c | 2 +- gcc/testsuite/gcc.dg/strlenopt-12g.c | 2 +- gcc/testsuite/gcc.dg/strlenopt-14g.c | 2 +- gcc/testsuite/gcc.dg/strlenopt-14gf.c | 2 +- gcc/testsuite/gcc.dg/strlenopt-16g.c | 2 +- gcc/testsuite/gcc.dg/strlenopt-17g.c | 2 +- gcc/testsuite/gcc.dg/strlenopt-18g.c | 2 +- gcc/testsuite/gcc.dg/strlenopt-1f.c | 2 +- gcc/testsuite/gcc.dg/strlenopt-22g.c | 2 +- gcc/testsuite/gcc.dg/strlenopt-2f.c | 2 +- gcc/testsuite/gcc.dg/strlenopt-31g.c | 2 +- gcc/testsuite/gcc.dg/strlenopt-33g.c | 2 +- gcc/testsuite/gcc.dg/strlenopt-4g.c | 2 +- gcc/testsuite/gcc.dg/strlenopt-4gf.c | 2 +- gcc/testsuite/gcc.dg/strncmp-2.c | 2 +- gcc/testsuite/gcc.dg/struct-ret-3.c | 2 +- gcc/testsuite/gcc.dg/torture/ipa-pta-1.c | 2 +- gcc/testsuite/gcc.dg/torture/pr69760.c | 2 +- gcc/testsuite/gcc.dg/tree-ssa/alias-2.c | 2 +- gcc/testsuite/gcc.dg/tree-ssa/ipa-split-5.c | 2 +- gcc/testsuite/gcc.dg/tree-ssa/loadpre6.c | 2 +- gcc/testsuite/gcc.target/arm/20051215-1.c | 1 + .../gcc.target/arm/armv6-unaligned-load-ice.c | 1 + .../gcc.target/arm/attr-unaligned-load-ice.c | 1 + gcc/testsuite/gcc.target/arm/attr_arm-err.c | 2 +- gcc/testsuite/gcc.target/arm/data-rel-2.c | 1 + gcc/testsuite/gcc.target/arm/data-rel-3.c | 1 + .../gcc.target/arm/di-longlong64-sync-withldrexd.c | 3 +- gcc/testsuite/gcc.target/arm/div64-unwinding.c | 2 +- gcc/testsuite/gcc.target/arm/eliminate.c | 2 +- gcc/testsuite/gcc.target/arm/fp16-aapcs-2.c | 2 +- gcc/testsuite/gcc.target/arm/fp16-aapcs-4.c | 2 +- gcc/testsuite/gcc.target/arm/ftest-armv4-arm.c | 1 + gcc/testsuite/gcc.target/arm/ftest-armv4t-arm.c | 1 + gcc/testsuite/gcc.target/arm/ftest-armv4t-thumb.c | 1 + gcc/testsuite/gcc.target/arm/ftest-armv5t-arm.c | 1 + gcc/testsuite/gcc.target/arm/ftest-armv5t-thumb.c | 1 + gcc/testsuite/gcc.target/arm/ftest-armv5te-arm.c | 1 + gcc/testsuite/gcc.target/arm/ftest-armv5te-thumb.c | 1 + gcc/testsuite/gcc.target/arm/ftest-armv6-arm.c | 1 + gcc/testsuite/gcc.target/arm/ftest-armv6-thumb.c | 1 + gcc/testsuite/gcc.target/arm/ftest-armv6k-arm.c | 1 + gcc/testsuite/gcc.target/arm/ftest-armv6k-thumb.c | 1 + gcc/testsuite/gcc.target/arm/ftest-armv6m-thumb.c | 1 + gcc/testsuite/gcc.target/arm/ftest-armv6t2-arm.c | 1 + gcc/testsuite/gcc.target/arm/ftest-armv6t2-thumb.c | 1 + gcc/testsuite/gcc.target/arm/ftest-armv6z-arm.c | 1 + gcc/testsuite/gcc.target/arm/ftest-armv6z-thumb.c | 1 + gcc/testsuite/gcc.target/arm/g2.c | 1 + gcc/testsuite/gcc.target/arm/interrupt-1.c | 6 +- gcc/testsuite/gcc.target/arm/interrupt-2.c | 6 +- gcc/testsuite/gcc.target/arm/ivopts-2.c | 2 +- gcc/testsuite/gcc.target/arm/ivopts-3.c | 2 +- gcc/testsuite/gcc.target/arm/ivopts-4.c | 2 +- gcc/testsuite/gcc.target/arm/ivopts-5.c | 2 +- gcc/testsuite/gcc.target/arm/macro_defs1.c | 1 + gcc/testsuite/gcc.target/arm/mmx-1.c | 1 + gcc/testsuite/gcc.target/arm/pr19599.c | 1 + gcc/testsuite/gcc.target/arm/pr40887.c | 1 + gcc/testsuite/gcc.target/arm/pr43597.c | 2 +- gcc/testsuite/gcc.target/arm/pr43698.c | 4 +- gcc/testsuite/gcc.target/arm/pr43920-2.c | 2 +- gcc/testsuite/gcc.target/arm/pr45701-1.c | 4 +- gcc/testsuite/gcc.target/arm/pr45701-2.c | 4 +- gcc/testsuite/gcc.target/arm/pr59858.c | 1 + gcc/testsuite/gcc.target/arm/pr61948.c | 1 + gcc/testsuite/gcc.target/arm/pr65647-2.c | 1 + gcc/testsuite/gcc.target/arm/pr66912.c | 2 +- gcc/testsuite/gcc.target/arm/pr70830.c | 3 +- gcc/testsuite/gcc.target/arm/pr77933-1.c | 1 + gcc/testsuite/gcc.target/arm/pr77933-2.c | 1 + gcc/testsuite/gcc.target/arm/pr79058.c | 1 + gcc/testsuite/gcc.target/arm/pr83712.c | 1 + .../gcc.target/arm/pragma_arch_switch_2.c | 1 + gcc/testsuite/gcc.target/arm/scd42-1.c | 1 + gcc/testsuite/gcc.target/arm/scd42-2.c | 1 + gcc/testsuite/gcc.target/arm/scd42-3.c | 1 + gcc/testsuite/gcc.target/arm/sibcall-1.c | 1 + gcc/testsuite/gcc.target/arm/stack-checking.c | 2 +- gcc/testsuite/gcc.target/arm/stack-red-zone.c | 2 +- gcc/testsuite/gcc.target/arm/synchronize.c | 2 +- gcc/testsuite/gcc.target/arm/tail-long-call.c | 1 + gcc/testsuite/gcc.target/arm/tlscall.c | 1 + gcc/testsuite/gcc.target/arm/vfp-longcall-apcs.c | 1 + gcc/testsuite/lib/target-supports.exp | 35 +- libatomic/configure | 11 +- libatomic/configure.tgt | 2 +- libgcc/config.host | 4 +- libgcc/config/arm/linux-atomic.c | 55 ++- libgcc/config/arm/unwind-arm.c | 5 + libgcc/config/arm/unwind-arm.h | 31 +- libgcc/crtstuff.c | 16 + libgcc/unwind-arm-common.inc | 216 +++++++++ libgcc/unwind-pe.h | 17 + libitm/config/arm/sjlj.S | 11 +- libitm/configure | 22 +- libitm/configure.tgt | 2 +- libsanitizer/configure.tgt | 3 + libstdc++-v3/acinclude.m4 | 9 +- libstdc++-v3/configure | 35 +- libstdc++-v3/configure.host | 6 +- libstdc++-v3/libsupc++/eh_personality.cc | 10 +- libtool.m4 | 11 +- 160 files changed, 1200 insertions(+), 227 deletions(-) create mode 100644 gcc/config/arm/uclinuxfdpiceabi.h mode change 100644 => 100755 libitm/configure -- 2.6.3