From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by sourceware.org (Postfix) with ESMTPS id F0A1A385BF92 for ; Wed, 1 Apr 2020 07:41:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org F0A1A385BF92 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mliska@suse.cz X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id C10CAB03C; Wed, 1 Apr 2020 07:41:10 +0000 (UTC) Subject: Re: [PATCH] PR lto/94249: Correct endianness detection with the __BYTE_ORDER macro To: "Maciej W. Rozycki" Cc: Jakub Jelinek , GCC Patches , binutils@sourceware.org, "H.J. Lu" References: <20200323103505.GF2156@tucnak> <6313e487-6dbb-ac17-4160-4ac600af40be@suse.cz> <7369b1aa-be0d-92cc-4f81-1612f101e2e8@suse.cz> <3786da05-1530-38c5-e9e2-cd69418cd42a@suse.cz> <5b27738a-9885-9906-0c93-888daf4a066f@suse.cz> <20200324083109.GP2156@tucnak> <20200324091805.GQ2156@tucnak> From: =?UTF-8?Q?Martin_Li=c5=a1ka?= Message-ID: <58a785c1-08fc-a491-e19d-2b42e0a9817b@suse.cz> Date: Wed, 1 Apr 2020 09:41:09 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-23.4 required=5.0 tests=BAYES_00, GIT_PATCH_2, GIT_PATCH_3, KAM_DMARC_STATUS, RCVD_IN_MSPIKE_H3, 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: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Apr 2020 07:41:13 -0000 On 3/31/20 3:27 PM, Maciej W. Rozycki wrote: > Correct an issue with GCC commit 906b3eb9df6c ("Improve endianess > detection.") and fix a typo in the __BYTE_ORDER fallback macro check > that causes compilation errors like: > > .../include/plugin-api.h:162:2: error: #error "Could not detect architecture endianess" > > on systems that do not provide the __BYTE_ORDER__ macro. Hello. Nice catch! > > include/ > PR lto/94249 > * plugin-api.h: Fix a typo in the __BYTE_ORDER macro check. > --- > On Tue, 24 Mar 2020, Martin Liška wrote: > >>>> +/* Detect endianess based on _BYTE_ORDER. */ >>>> +#if _BYTE_ORDER == _LITTLE_ENDIAN >>> >>> So most likely _BYTE_ORDER and _LITTLE_ENDIAN macros will not be defined. >>> Which means this will be handled as #if 0 == 0 and override the >>>> +#define PLUGIN_LITTLE_ENDIAN 1 >>> >>> will define also PLUGIN_LITTLE_ENDIAN. >> >> Ok, for being sure, I've wrapped all equality comparison with corresponding >> check of the LHS is defined. > > This change, when merged into binutils, caused BFD to fail building in > one of my configurations: > > In file included from .../bfd/elflink.c:31: > .../bfd/../include/plugin-api.h:162:2: error: #error "Could not detect architecture endianess" > make[4]: *** [elflink.lo] Error 1 > > This is due to a missing underscore in the: > > #ifdef _BYTE_ORDER > > check. > > OK to apply this hopefully obvious fix to GCC and then merge to binutils? I've just installed the patch. @H.J. Can you please pull it to bintuils? > > NB if posting as an attachment please try matching the message subject > with the change heading as otherwise it takes a lot of effort to track the > patch submission corresponding to a given commit. I see your point, but note that sometimes a direction of a patch changes during the mailing list discussion. And so that we end up with a commit message that has a different name. Anyway, thank you for your help. Martin > > Maciej > --- > include/plugin-api.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > binutils-include-plugin-api-byte-order.diff > Index: binutils/include/plugin-api.h > =================================================================== > --- binutils.orig/include/plugin-api.h > +++ binutils/include/plugin-api.h > @@ -51,7 +51,7 @@ > /* Older GCC releases (<4.6.0) can make detection from glibc macros. */ > #if defined(__GLIBC__) || defined(__GNU_LIBRARY__) || defined(__ANDROID__) > #include > -#ifdef _BYTE_ORDER > +#ifdef __BYTE_ORDER > #if __BYTE_ORDER == __LITTLE_ENDIAN > #define PLUGIN_LITTLE_ENDIAN 1 > #elif __BYTE_ORDER == __BIG_ENDIAN >