From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com 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 From: Olivier Hainque To: gcc-patches@gcc.gnu.org Cc: Segher Boessenkool Subject: =?iso-8859-1?Q?=5Bpatch=5D=A0Fi?= =?iso-8859-1?Q?x?= thinko in powerpc default specs for -mabi Message-ID: <20220923154924.GA66899@adacore.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="gBBFr7Ir9EOA20Yy" 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 List-Id: --gBBFr7Ir9EOA20Yy Content-Type: text/plain; charset=us-ascii Content-Disposition: inline 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. --gBBFr7Ir9EOA20Yy Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="with-abi.diff" 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)}}}" }, \ --gBBFr7Ir9EOA20Yy--