From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTP id 425AF3857C71 for ; Wed, 12 May 2021 17:27:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 425AF3857C71 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-516-jjbLoh83MZGN13J-9hrvqg-1; Wed, 12 May 2021 13:27:14 -0400 X-MC-Unique: jjbLoh83MZGN13J-9hrvqg-1 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4EC1C1005D4E; Wed, 12 May 2021 17:27:13 +0000 (UTC) Received: from oldenburg.str.redhat.com (ovpn-112-137.ams2.redhat.com [10.36.112.137]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 27DBF19D7C; Wed, 12 May 2021 17:27:11 +0000 (UTC) From: Florian Weimer To: Tulio Magno Quites Machado Filho Cc: "Lucas A. M. Magalhaes" , libc-alpha@sourceware.org Subject: Re: [PATCH 2/3] powerpc64le: Check HWCAP bits against compiler build flags References: <162076753769.316372.10532385586864995177@fedora.local> <87im3owe4q.fsf@oldenburg.str.redhat.com> <871racxavs.fsf@linux.ibm.com> Date: Wed, 12 May 2021 19:27:10 +0200 In-Reply-To: <871racxavs.fsf@linux.ibm.com> (Tulio Magno Quites Machado Filho's message of "Wed, 12 May 2021 11:52:23 -0300") Message-ID: <878s4jrhg1.fsf@oldenburg.str.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Spam-Status: No, score=-6.8 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 May 2021 17:27:19 -0000 * Tulio Magno Quites Machado Filho: > Florian Weimer via Libc-alpha writes: > >> I tried to allude in the commit message that this is expected. Maybe I >> should drop the POWER10 check? > > I don't think this is necessary. > Even if you removed the P10 check, I don't think the P9 check is guaranteed to > work because when _ARCH_PWR9 is set, the compiler is allowed to use P9 > instructions in this function before the test is executed. Correct, it just emprically works for me. > I think this patch is trying to improve the error message to the user. And make sure that there is an error. We don't want things to crash later, or after system upgrades using a different compiler version with more optimizations. > With that said, it doesn't hurt to copy your explanation as a source code > comment, i.e.: > > /* This approach does not work for the POWER10 because the bootstrap > relocation already uses PCREL instructions, so the detection code does > not actually run. */ My point was not so much that the bootstrap relocation uses PCREL instructions, but we eventually *want* to use it such instructions and get rid of the bootstrap relocation (like we do for other PI_STATIC_AND_HIDDEN targets). >>> +#ifdef __MMA__ >>> + if ((GLRO (dl_hwcap2) & PPC_FEATURE2_MMA) == 0) >>> + _dl_fatal_printf ("\ >>> +Fatal glibc error: CPU lacks MMA support (POWER10 or later required)\n"); >>> +#endif >>> +} > > I'm not sure it's a good idea to require MMA. __MMA__ is enabled with > -mcpu=power10. However, I'm not aware of any compilers able to > auto-mma code. In other words, we have to use it explicitly right > now. Which means we shouldn't have MMA instructions in glibc at the > moment. I think we should require it if it is part of -mcpu=power10. This check is not just for glibc code, but for entire distributions using consistent build flags across everything. If they don't want MMA for some reason, they will have to build wuth -mno-mmma. Thanks, Florian