From patchwork Fri Sep 23 15:49:24 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Olivier Hainque X-Patchwork-Id: 57977 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 93330385AC1B for ; Fri, 23 Sep 2022 15:49:55 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 93330385AC1B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1663948195; bh=NNkuXC6/mE1OOtGydWeDlqisvqct8///gTm5QCKh0mk=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=uyZ3ltE63XZuNLu73dxnBSO41v1beJCbR1Dn5G4CV6g5++epDFNj704ZTdKd5+XuO hzX/A+JsswcvJFdmbyS538FvGarxSJfV7bqK48xHnP6XyPFZc3w06ywpkLfjkcCzx8 Rm5yCEduE/bMxs1Vfr3L6HkU27NVZ4YlOA3JHK08= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from rock.gnat.com (rock.gnat.com [205.232.38.15]) by sourceware.org (Postfix) with ESMTPS id 33B483857B8D for ; Fri, 23 Sep 2022 15:49:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 33B483857B8D Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id DCB09116428; Fri, 23 Sep 2022 11:49:25 -0400 (EDT) X-Virus-Scanned: Debian amavisd-new at gnat.com Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id wMcmBZIyrc6R; Fri, 23 Sep 2022 11:49:25 -0400 (EDT) Received: from tron.gnat.com (tron.gnat.com [IPv6:2620:20:4000:0:46a8:42ff:fe0e:e294]) by rock.gnat.com (Postfix) with ESMTP id F03EE1163FB; Fri, 23 Sep 2022 11:49:24 -0400 (EDT) Received: by tron.gnat.com (Postfix, from userid 4216) id EC3DB596; Fri, 23 Sep 2022 11:49:24 -0400 (EDT) Date: Fri, 23 Sep 2022 11:49:24 -0400 To: gcc-patches@gcc.gnu.org Subject: =?iso-8859-1?q?=5Bpatch=5D=A0Fix?= thinko in powerpc default specs for -mabi Message-ID: <20220923154924.GA66899@adacore.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_SHORT, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Olivier Hainque via Gcc-patches From: Olivier Hainque Reply-To: Olivier Hainque Cc: Segher Boessenkool Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Hello, For a powerpc compiler configured with --with-abi=elfv2, an explicit -mabi option other than elfv1 fails to override the default. For example, after [...]/configure --enable-languages=c --target=powerpc-elf --with-abi=elfv2 make all-gcc This command: ./gcc/xgcc -B./gcc/ t.c -mabi=ieeelongdouble -v issues: ./gcc/cc1 [...] t.c -mabi=ieeelongdouble -mabi=elfv2 elfv2 overrides the user request here, which I think is not as intended. This is controlled by OPTION_DEFAULT_SPECS, where we have {"abi", "%{!mabi=elfv*:-mabi=%(VALUE)}" }, From https://gcc.gnu.org/pipermail/gcc-patches/2013-November/375042.html I don't see an explicit reason to trigger only on elfv* . It just looks like an oversight with a focus on elfv1 vs elfv2 at the time. The attached patch is a proposal to correct this, simply removing the "elfv" prefix from the spec and adding the corresponding description to the block comment just above. We have been using this for about a year now in gcc-11 based toolchains. This helps our dejagnu testsuite runs for VxWorks on powerpc and hasn't produced any ill side effect to date. The patch also bootstraps and regtests fine on powerpc64-linux. Is this OK to commit? Thanks in advance! With Kind Regards, Olivier 2022-09-14 Olivier Hainque * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Have any -mabi, not only -mabi=elfv*, override the --with-abi configuration default. commit 33933796b777591007c04448860e781ac17b9070 Author: Olivier Hainque AuthorDate: Thu Apr 21 14:44:47 2022 +0000 Commit: Olivier Hainque CommitDate: Thu Apr 21 14:47:37 2022 +0000 Fix thinko in --with-abi processing on powerpc Make it so any -mabi overrides what --with-abi requests as a default, not only -mabi=elfv*. Part of V415-021 (-mabi overrides on powerpc) Change-Id: I62763dee62bbbd7d446f2dd091017d0c7e719cab diff --git a/gcc/config/rs6000/option-defaults.h b/gcc/config/rs6000/option-defaults.h index 7ebd115755a..ecf246e6b2e 100644 --- a/gcc/config/rs6000/option-defaults.h +++ b/gcc/config/rs6000/option-defaults.h @@ -47,6 +47,7 @@ #endif /* Support for a compile-time default CPU, et cetera. The rules are: + --with-abi is ignored if -mabi is specified. --with-cpu is ignored if -mcpu is specified; likewise --with-cpu-32 and --with-cpu-64. --with-tune is ignored if -mtune or -mcpu is specified; likewise @@ -54,7 +55,7 @@ --with-float is ignored if -mhard-float or -msoft-float are specified. */ #define OPTION_DEFAULT_SPECS \ - {"abi", "%{!mabi=elfv*:-mabi=%(VALUE)}" }, \ + {"abi", "%{!mabi=*:-mabi=%(VALUE)}" }, \ {"tune", "%{!mtune=*:%{!mcpu=*:-mtune=%(VALUE)}}" }, \ {"tune_32", "%{" OPT_ARCH32 ":%{!mtune=*:%{!mcpu=*:-mtune=%(VALUE)}}}" }, \ {"tune_64", "%{" OPT_ARCH64 ":%{!mtune=*:%{!mcpu=*:-mtune=%(VALUE)}}}" }, \