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: 13015 Return-Path: X-Original-To: patchwork@peony.canonical.com Delivered-To: patchwork@peony.canonical.com Received: from fiordland.canonical.com (fiordland.canonical.com [91.189.94.145]) by peony.canonical.com (Postfix) with ESMTP id 634E423E13 for ; Tue, 20 Nov 2012 20:34:55 +0000 (UTC) Received: from mail-ie0-f180.google.com (mail-ie0-f180.google.com [209.85.223.180]) by fiordland.canonical.com (Postfix) with ESMTP id E837EA182CD for ; Tue, 20 Nov 2012 20:34:54 +0000 (UTC) Received: by mail-ie0-f180.google.com with SMTP id e10so8845743iej.11 for ; Tue, 20 Nov 2012 12:34:54 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-forwarded-to:x-forwarded-for:delivered-to:received-spf: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=Ew97ClEgWTVCEWaUlyHmRsBvyoavrM7GLzr9qIsoEdgMa7hIcHi54M7rr3gqO7EzPR F5p3IUP4Coti0gRVRG/tpD929RTEmHS1Wx/y7+HlbG7FsYt2ZTl3EP9UnVvdMe/tO+9l 8X7313hxLHsnWKnzd5YzTlu56EVdXsmzoEkNosusbgS5W5KGz9wTDdyXt6OZbmBPqOrv DNoVsLn59s/0IqpFZOdZ6WUqrRZdI2YNt4M8V0EArKwjYdWH3LSZf/aoDDUUJCF/zsuj WbVkl7XzeKxB3haqHhw2fYrZ25F9T75P9hfk70FMfbuqJs2A1K11rHl/jntOW+YCxEYZ +uZw== Received: by 10.50.186.199 with SMTP id fm7mr11162567igc.62.1353443694368; Tue, 20 Nov 2012 12:34:54 -0800 (PST) X-Forwarded-To: linaro-patchwork@canonical.com X-Forwarded-For: patch@linaro.org linaro-patchwork@canonical.com Delivered-To: patches@linaro.org Received: by 10.50.67.148 with SMTP id n20csp381030igt; Tue, 20 Nov 2012 12:34:53 -0800 (PST) Received: by 10.180.99.97 with SMTP id ep1mr16469252wib.12.1353443692435; Tue, 20 Nov 2012 12:34:52 -0800 (PST) Received: from mail-wi0-f176.google.com (mail-wi0-f176.google.com [209.85.212.176]) by mx.google.com with ESMTPS id m35si2840514weo.35.2012.11.20.12.34.51 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 20 Nov 2012 12:34:52 -0800 (PST) Received-SPF: neutral (google.com: 209.85.212.176 is neither permitted nor denied by best guess record for domain of matthew.gretton-dann@linaro.org) client-ip=209.85.212.176; Authentication-Results: mx.google.com; spf=neutral (google.com: 209.85.212.176 is neither permitted nor denied by best guess record for domain of matthew.gretton-dann@linaro.org) smtp.mail=matthew.gretton-dann@linaro.org Received: by mail-wi0-f176.google.com with SMTP id o1so1083376wic.11 for ; Tue, 20 Nov 2012 12:34:51 -0800 (PST) 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: ALoCoQk0Zsxd6qlOUV8Kh3zteUF674sPOi4A1iPZPyHZT20+sczt3DdGmTYYexM3UkcpM6w74NNr 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 //