From patchwork Tue Nov 20 20:34:47 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Gretton-Dann X-Patchwork-Id: 200513 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]) by ozlabs.org (Postfix) with SMTP id CA6FE2C008C for ; Wed, 21 Nov 2012 07:35:09 +1100 (EST) Comment: DKIM? See http://www.dkim.org DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=gcc.gnu.org; s=default; x=1354048510; h=Comment: DomainKey-Signature:Received:Received:Received:Received:Received: Received:From:To:Cc:Subject:Date:Message-ID:User-Agent: MIME-Version:Content-Type:Content-Transfer-Encoding:Mailing-List: Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:Sender:Delivered-To; bh=VP0Dz4Q1nEqC7aYAZejIW+D3HD0=; b=b08+1mMwE43gr6vbT5aR1XzRd01zr+44lpTHGiKmaCKD2bzDwgfmuHoU3jkpTU 9mN6NXZn8m1EXPOwo/cUdhDB0X+pDfwWniCxdAiVLgUGGBK6Fkamm3J3iF717jzm /5N9LCsPbYhHuFNymu7bC8Jp/0TCsaXpAiSbDS7wDxHhU= Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=gcc.gnu.org; h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:Received:Received:X-Google-DKIM-Signature:Received:Received:From:To:Cc:Subject:Date:Message-ID:User-Agent:MIME-Version:Content-Type:Content-Transfer-Encoding:X-Gm-Message-State:X-IsSubscribed:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=X3Ooyb6tF67q08hZNFQMLn64pzdSJ/dh3mEjaw3xqDw3pTROCiXwB3IR5NZvrn 8dQoy3BAC3eXaY5PevvLKIV1zBXc914pEXgL3oBVaHQ7HZqsfLC3Z1z6ft/snINc lFdomHS05dxUBl4K3NzWC7iteF8Q99n1QL9+o7bD84Rx0=; Received: (qmail 5615 invoked by alias); 20 Nov 2012 20:35:01 -0000 Received: (qmail 5539 invoked by uid 22791); 20 Nov 2012 20:35:00 -0000 X-SWARE-Spam-Status: No, hits=-2.8 required=5.0 tests=AWL, BAYES_00, KHOP_RCVD_UNTRUST, RCVD_IN_DNSWL_LOW, RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org Received: from mail-we0-f175.google.com (HELO mail-we0-f175.google.com) (74.125.82.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 20 Nov 2012 20:34:53 +0000 Received: by mail-we0-f175.google.com with SMTP id z53so422090wey.20 for ; Tue, 20 Nov 2012 12:34:51 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:cc:subject:date:message-id:user-agent:mime-version :content-type:content-transfer-encoding:x-gm-message-state; bh=inxMybd2NvzK/Pmm6KasxV0Ze5htRede1/N7e73K9Go=; b=CEml4O1WMAzxa2fAjNwfYFfjWgkB/S5OccGi5xgEi51henfWr0sSGsncswzxtiTirz ywWqedWNPa/8aMi2q0DGJYCJUM1VTmjcTo5nfFzoHvCymcXxXwtWf6VnRQjojIsPe4yV qYuctaIj7VsCWzLCNuW9Rtvz7uVbgIMRLw/1I+Xel8PujkQliY8Ss2OVTyNt4uWrmfls pXsXPEKN9HcVWRrLel9BlwmR7atZf3HmxVDsojaT1KxEZcRxcyFvTX612FsNNCKnVL3m EZrX/ynbTbebNlGSHaeCmH9WDuaAp8MhXtAcOWQsu9D9Hy+7KP7nEFIkUM8Y3huV3kyK yXMw== Received: by 10.180.88.72 with SMTP id be8mr16433584wib.19.1353443691520; Tue, 20 Nov 2012 12:34:51 -0800 (PST) Received: from e103209-lin.localnet ([87.112.143.123]) by mx.google.com with ESMTPS id j18sm19243322wiv.9.2012.11.20.12.34.49 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 20 Nov 2012 12:34:50 -0800 (PST) From: Matthew Gretton-Dann To: gcc-patches@gcc.gnu.org, patches@linaro.org Cc: rguenther@suse.de, rearnsha@arm.com Subject: [RFA/4.7/ARM] Backport arm-*-linux-gnueabihf triplet support to 4.7 Date: Tue, 20 Nov 2012 20:34:47 +0000 Message-ID: <2043702.301rbd19p6@e103209-lin> User-Agent: KMail/4.9.2 (Linux/3.5.0-18-generic; KDE/4.9.2; x86_64; ; ) MIME-Version: 1.0 X-Gm-Message-State: ALoCoQn67l2xVWP5nJq3SuOF/HJHIEJi1AVbdCB4WOCwf7I3hvuDoLy3INSJ72jo2E+n/kgngLTa X-IsSubscribed: yes 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 All, This patch backports Matthais Klose's arm*-*-linux-gnueabihf triplet support patch of 2012-10-15 to 4.7. The backport was not clean as 4.8 has obsoleted various arm*-*-* triplets which are valid in 4.7. I have tested this cross with arm-none-linux-gnueabihf and arm-none-linux-gnueabi. One question I do have having done this work - is there a canonical way to test for the arm*-*-linux-gnueabi triplet (or variants)? Various configure and testsuite files test for this, but there doesn't seem to be a consistent method. OK for 4.7? Thanks, Matt 2012-11-08 Matthew Gretton-Dann Backport from mainline 2012-10-15 Matthias Klose * config.gcc: Match arm*-*-linux-* for ARM Linux/GNU. * doc/install.texi: Use arm-*-*linux-* instead of arm-*-*linux-gnueabi. gcc/ada/ChangeLog: 2012-11-08 Matthew Gretton-Dann Backport from mainline. 2012-10-15 Matthias Klose * gcc-interface/Makefile.in: Match arm*-*-linux-*eabi* for ARM Linux/GNU. gcc/testsuite/ChangeLog: 2012-11-08 Matthew Gretton-Dann Backport from mainline 2012-10-15 Matthias Klose * lib/target-supports.exp (check_profiling_available): Match arm*-*-linux-* for ARM Linux/GNU. * gfortran.dg/enum_10.f90: Likewise. * gfortran.dg/enum_9.f90: Likewise. * gcc.target/arm/synchronize.c: Likewise. * g++.old-deja/g++.jason/enum6.C: Likewise. * g++.old-deja/g++.law/enum9.C: Likewise. * g++.old-deja/g++.other/enum4.C: Likewise. libgcc/ChangeLog: 2012-11-08 Matthew Gretton-Dann * config.host: Match arm*-*-linux-* for ARM Linux/GNU. libjava/ChangeLog: 2012-11-08 Matthew Gretton-Dann Backport from mainline. 2012-10-15 Matthias Klose * configure.ac: Match arm*-*-linux-* for ARM Linux/GNU. * configure: Regenerate. libstdc++-v3/ChangeLog: 2012-11-08 Matthew Gretton-Dann Backport from mainline 2012-10-15 Matthias Klose * configure.host: Match arm*-*-linux-* for ARM Linux/GNU. * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise. * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc: Likewise. diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in index 9b5135e..9f20f07 100644 --- a/gcc/ada/gcc-interface/Makefile.in +++ b/gcc/ada/gcc-interface/Makefile.in @@ -1866,7 +1866,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(arch) $(osys))),) LIBRARY_VERSION := $(LIB_VERSION) endif -ifeq ($(strip $(filter-out arm% linux-gnueabi,$(arch) $(osys)-$(word 4,$(targ)))),) +ifeq ($(strip $(filter-out arm%-linux,$(arch)-$(osys)) $(if $(findstring eabi,$(word 4,$(targ))),,$(word 4,$(targ)))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads diff --git a/gcc/testsuite/g++.old-deja/g++.law/enum9.C b/gcc/testsuite/g++.old-deja/g++.law/enum9.C index 5a74b2f..0ecb87d 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/enum9.C +++ b/gcc/testsuite/g++.old-deja/g++.law/enum9.C @@ -7,10 +7,10 @@ // enum-size attributes should only be emitted if there are values of // enum type that can escape the compilation unit, gcc cannot currently // detect this; if this facility is added then this linker option should -// not be needed. arm-*-linux*eabi should be a good approximation to +// not be needed. arm-*-linux*eabi* should be a good approximation to // those platforms where the EABI supplement defines enum values to be // 32 bits wide. -// { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } } +// { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi* } } // GROUPS passed enums extern "C" int printf (const char *, ...); diff --git a/gcc/testsuite/g++.old-deja/g++.other/enum4.C b/gcc/testsuite/g++.old-deja/g++.other/enum4.C index 429e812..509da6d 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/enum4.C +++ b/gcc/testsuite/g++.old-deja/g++.other/enum4.C @@ -9,10 +9,10 @@ // enum-size attributes should only be emitted if there are values of // enum type that can escape the compilation unit, gcc cannot currently // detect this; if this facility is added then this linker option should -// not be needed. arm-*-linux*eabi should be a good approximation to +// not be needed. arm-*-linux*eabi* should be a good approximation to // those platforms where the EABI supplement defines enum values to be // 32 bits wide. -// { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } } +// { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi* } } enum E { a = -312 diff --git a/gcc/testsuite/gcc.target/arm/synchronize.c b/gcc/testsuite/gcc.target/arm/synchronize.c index 8626d8e..cf5dcdf 100644 --- a/gcc/testsuite/gcc.target/arm/synchronize.c +++ b/gcc/testsuite/gcc.target/arm/synchronize.c @@ -1,4 +1,4 @@ -/* { dg-final { scan-assembler "__sync_synchronize|dmb|mcr" { target arm*-*-linux-*eabi } } } */ +/* { dg-final { scan-assembler "__sync_synchronize|dmb|mcr" { target arm*-*-linux-*eabi* } } } */ void *foo (void) { diff --git a/gcc/testsuite/gfortran.dg/enum_10.f90 b/gcc/testsuite/gfortran.dg/enum_10.f90 index 99a1690..1889766 100644 --- a/gcc/testsuite/gfortran.dg/enum_10.f90 +++ b/gcc/testsuite/gfortran.dg/enum_10.f90 @@ -1,7 +1,7 @@ ! { dg-do run } ! { dg-additional-sources enum_10.c } ! { dg-options "-fshort-enums -w" } -! { dg-options "-fshort-enums -w -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } } +! { dg-options "-fshort-enums -w -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi* } } ! Make sure short enums are indeed interoperable with the ! corresponding C type. diff --git a/gcc/testsuite/gfortran.dg/enum_9.f90 b/gcc/testsuite/gfortran.dg/enum_9.f90 index 8a5c60a..fec5d92 100644 --- a/gcc/testsuite/gfortran.dg/enum_9.f90 +++ b/gcc/testsuite/gfortran.dg/enum_9.f90 @@ -1,6 +1,6 @@ ! { dg-do run } ! { dg-options "-fshort-enums" } -! { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } } +! { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi* } } ! Program to test enumerations when option -fshort-enums is given program main diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 4a8eee1..ab2c5e8 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -3818,7 +3818,7 @@ proc check_effective_target_sync_long_long_runtime { } { } } "" }] - } elseif { [istarget arm*-*-linux-gnueabi] } { + } elseif { [istarget arm*-*-linux-gnueabi*] } { return [check_runtime sync_longlong_runtime { #include int main () @@ -3860,7 +3860,7 @@ proc check_effective_target_sync_int_long { } { || [istarget i?86-*-*] || [istarget x86_64-*-*] || [istarget alpha*-*-*] - || [istarget arm*-*-linux-gnueabi] + || [istarget arm*-*-linux-gnueabi*] || [istarget bfin*-*linux*] || [istarget hppa*-*linux*] || [istarget s390*-*-*] @@ -3890,7 +3890,7 @@ proc check_effective_target_sync_char_short { } { || [istarget i?86-*-*] || [istarget x86_64-*-*] || [istarget alpha*-*-*] - || [istarget arm*-*-linux-gnueabi] + || [istarget arm*-*-linux-gnueabi*] || [istarget hppa*-*linux*] || [istarget s390*-*-*] || [istarget powerpc*-*-*] diff --git a/libgcc/config.host b/libgcc/config.host index bbf21a9..51aec66 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -327,7 +327,7 @@ arm*-*-netbsdelf*) arm*-*-linux*) # ARM GNU/Linux with ELF tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix" case ${host} in - arm*-*-linux-*eabi) + arm*-*-linux-*eabi*) tmake_file="${tmake_file} arm/t-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc" tm_file="$tm_file arm/bpabi-lib.h" unwind_header=config/arm/unwind-arm.h diff --git a/libjava/configure b/libjava/configure index b0b45bb..d8a408d 100755 --- a/libjava/configure +++ b/libjava/configure @@ -20542,7 +20542,7 @@ case "${host}" in # on Darwin -single_module speeds up loading of the dynamic libraries. extra_ldflags_libjava=-Wl,-single_module ;; -arm*linux*eabi) +arm*-*-linux*eabi*) # Some of the ARM unwinder code is actually in libstdc++. We # could in principle replicate it in libgcj, but it's better to # have a dependency on libstdc++. diff --git a/libjava/configure.ac b/libjava/configure.ac index 8a25a42..93b25df 100644 --- a/libjava/configure.ac +++ b/libjava/configure.ac @@ -931,7 +931,7 @@ case "${host}" in # on Darwin -single_module speeds up loading of the dynamic libraries. extra_ldflags_libjava=-Wl,-single_module ;; -arm*linux*eabi) +arm*-*-linux*eabi*) # Some of the ARM unwinder code is actually in libstdc++. We # could in principle replicate it in libgcj, but it's better to # have a dependency on libstdc++. diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host index ca4d819..b0e2cd9 100644 --- a/libstdc++-v3/configure.host +++ b/libstdc++-v3/configure.host @@ -340,7 +340,7 @@ case "${host}" in fi esac case "${host}" in - arm*-*-linux-*eabi) + arm*-*-linux-*eabi*) port_specific_symbol_files="\$(srcdir)/../config/os/gnu-linux/arm-eabi-extra.ver" ;; esac diff --git a/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc b/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc index adf3af4..9bebef2 100644 --- a/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc +++ b/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc @@ -1,5 +1,5 @@ // { dg-options "-std=gnu++0x -funsigned-char -fshort-enums" } -// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } } +// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi* } } // 2007-05-03 Benjamin Kosnik // diff --git a/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc b/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc index a1465d3..3a80439 100644 --- a/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc +++ b/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc @@ -1,5 +1,5 @@ // { dg-options "-std=gnu++0x -funsigned-char -fshort-enums" } -// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } } +// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi* } } // 2007-05-03 Benjamin Kosnik //