Received: by 2002:a25:f815:0:0:0:0:0 with SMTP id u21csp732358ybd; Wed, 26 Jun 2019 05:15:05 -0700 (PDT) X-Google-Smtp-Source: APXvYqxRYTRwlZn6wi/i2kcMNiJMErgnueS9AHEVzwO0tcRoMAOVz2tSwx1TMbQY2t6npaOeN7pU X-Received: by 2002:a65:66d1:: with SMTP id c17mr2609695pgw.293.1561551305030; Wed, 26 Jun 2019 05:15:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1561551305; cv=none; d=google.com; s=arc-20160816; b=LJrI8a3sv8UYPkXox/as+8i6p2fh/ZJMPjpnIWj/60G8V4ld8fT/5brWaSaflNb9Q/ 7BIHG/ex/pqy3yUEMxyeNVCVfjZTS+MnF606ntpXdQ+L1oRSrn7SwfyRHRgeOB++sFsP BdzlGbw2/VdTs7YCndeG2iT3DnJyPm9TRtktdPjoxq0BFh4PqWdNzCptqpAYzTgaTZFk UMKnTYtgkxljHAoF4sKxRkx1yLB3mj2/LCvqaWRh1S+6L9Jyjx7Jczz9OXi7BkKYZ6d/ MCDOzhwZexaoKraKR00CzfC5DKAaGVqiBmzcZN9XpfMptg8rOIKuJULn5iVDc7LgEriT nz8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:references:cc:to:subject:from:dkim-signature; bh=nE8JZHrKvZIjpzwoCOV4W+kZMdzp32CH3OhSv9DzAQA=; b=ZKA+svkwF3ipCsCrEF/bKrAHM0phWOiq3kHd1c/T9tehJGe0EjsJt84O2+AeIdM64C Ik1FBtw1R7pBvwvhAR6+5nE1Vq/vaBeZdsKt/VC6GvvaIDIejxTASGrl5KQXzf9GaKbn fy39yC7Gqkofd6ZCNx9QW/iRyQhBzLX4RC6PO1Wtpg0jM6fzikZxqJKsC8GlOiniBnMj JwxwMxJiyZSsBDzWy2axOnU1B1ooSg8B85WN/V9alwaTZyY19gVF7kJJA+N9z6tY+7Df LZ4DbSD4Y4ZPMNqjK4GiZpg26SYNRa2o2ckuE/OMNGbfgX6sC4pHO19OjuH0fv5Zcm19 qhag== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=FkpiqxEm; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e90si2985674plb.309.2019.06.26.05.14.48; Wed, 26 Jun 2019 05:15:05 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=FkpiqxEm; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727385AbfFZMON (ORCPT + 99 others); Wed, 26 Jun 2019 08:14:13 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:41408 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726104AbfFZMON (ORCPT ); Wed, 26 Jun 2019 08:14:13 -0400 Received: by mail-pg1-f195.google.com with SMTP id y72so1139149pgd.8; Wed, 26 Jun 2019 05:14:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:subject:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=nE8JZHrKvZIjpzwoCOV4W+kZMdzp32CH3OhSv9DzAQA=; b=FkpiqxEmc1WKkr3sirer29jM7xKhdHyKj0fJ2SNPATI1XoRrgSCqtqr9u1BKAC5cXW YFlgxc/7PYtwZNZTxfldcM14QmtYCm5V+lOlEqpU9Hb19P2FtbAt3wmSsrs4kBJ6AZQF xNcQZqQR1b7/EuDIIVJO/0cj0Z7SHlyBVQdwSv7gbLf6RapeCmFI0xnvOW49BJh5bLeI RS4umvJZCdtSFtR5EIM67n/KRpXkwZYMwHaqEykhtlh1F41v969pTFQAuq90Bf8RkXxB sI6z8boSKMD/WDlvoH0rirK0/QKtqFKmzHexh6m20aylIOt7MKN0jHGhTlGHhSuKk+Hl h75A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:subject:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=nE8JZHrKvZIjpzwoCOV4W+kZMdzp32CH3OhSv9DzAQA=; b=fkQ7mRk02oW7Dw/gcQBl0xzjsLXvJP0HCyuJw8jnr1cxW7mUFHBQlG6bFMk0ept/po GwkdsEKMXw2JBvdi6Qm/u7VTi305fhxw9POmYzOtsIvAhfY0Xm6jymAfZzZDjq2X0kPD G7nR7mqlo2gky1uqkM4new+8NDYis7B5Nux0XCrQPYboHD1YbxAtpiQItDadw38bxOAN LjDMp/TY2Qhi4K0nhedK/8MBlQofsA36nZpRSxb3vKO5alGZmfLwfmhsPDO2qyeEisla k0F+lsDNdcbVL8vxaP+MTXwrEh8Fv3bsEteOA1T3W/ew85KtFjEQbFTGKWbTgnH3AtfI 41zw== X-Gm-Message-State: APjAAAVBrNBeU8Zn297k0IpDc0PINKkGH07q0nXXdvjYiIXkMfFaz6R3 RhijJQZRp5IWkorkFrEXEWTT4eIjp+U= X-Received: by 2002:a17:90a:214f:: with SMTP id a73mr4338153pje.21.1561551252708; Wed, 26 Jun 2019 05:14:12 -0700 (PDT) Received: from [10.44.0.192] ([103.48.210.53]) by smtp.gmail.com with ESMTPSA id x128sm30778516pfd.17.2019.06.26.05.14.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 26 Jun 2019 05:14:12 -0700 (PDT) From: Greg Ungerer X-Google-Original-From: Greg Ungerer Subject: Re: [PATCH 08/17] binfmt_flat: consolidate two version of flat_v2_reloc_t To: Geert Uytterhoeven Cc: Al Viro , Christoph Hellwig , Michal Simek , Linux ARM , linux-c6x-dev@linux-c6x.org, "moderated list:H8/300 ARCHITECTURE" , linux-m68k , linux-riscv@lists.infradead.org, Linux-sh list , linux-xtensa@linux-xtensa.org, Linux Kernel Mailing List References: <20190613070903.17214-1-hch@lst.de> <20190613070903.17214-9-hch@lst.de> <20190625222941.GA1343@ZenIV.linux.org.uk> Message-ID: Date: Wed, 26 Jun 2019 22:14:06 +1000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Geert, On 26/6/19 6:18 pm, Geert Uytterhoeven wrote: > Hi Greg, > > On Wed, Jun 26, 2019 at 9:23 AM Greg Ungerer wrote: >> On 26/6/19 8:29 am, Al Viro wrote: >>> On Thu, Jun 13, 2019 at 09:08:54AM +0200, Christoph Hellwig wrote: >>>> Two branches of the ifdef maze actually have the same content, so merge >>>> them. >>>> >>>> Signed-off-by: Christoph Hellwig >>>> --- >>>> include/linux/flat.h | 6 ++---- >>>> 1 file changed, 2 insertions(+), 4 deletions(-) >>>> >>>> diff --git a/include/linux/flat.h b/include/linux/flat.h >>>> index 2b7cda6e9c1b..19c586b74b99 100644 >>>> --- a/include/linux/flat.h >>>> +++ b/include/linux/flat.h >>>> @@ -69,15 +69,13 @@ struct flat_hdr { >>>> typedef union { >>>> unsigned long value; >>>> struct { >>>> -# if defined(mc68000) && !defined(CONFIG_COLDFIRE) >>>> +#if defined(__LITTLE_ENDIAN_BITFIELD) || \ >>>> + (defined(mc68000) && !defined(CONFIG_COLDFIRE)) >>>> signed long offset : 30; >>>> unsigned long type : 2; >>>> # elif defined(__BIG_ENDIAN_BITFIELD) >>>> unsigned long type : 2; >>>> signed long offset : 30; >>>> -# elif defined(__LITTLE_ENDIAN_BITFIELD) >>>> - signed long offset : 30; >>>> - unsigned long type : 2; >>>> # else >>>> # error "Unknown bitfield order for flat files." >>>> # endif >>>> -- >>>> 2.20.1 >>>> >>> >>> FWIW, I wonder if keeping that type is worth bothering. >>> Something like >>> old_reloc(__be32 reloc) >>> { >>> u32 v = be32_to_cpu(reloc); >>> int offset, type; >>> >>> #if (defined(mc68000) && !defined(CONFIG_COLDFIRE)) >>> /* old m68k uses unusual format - type is in lower bits of octet 3 */ >>> type = v % 4; >>> offset = (int)v / 4; >>> #else >>> /* everything else (including coldfire) has it in upper bits of octet 0 */ >>> type = v >> 30; >>> offset = (int)(v << 2) >> 2; /* or (v & 0x1fffffff) - (v & 0x20000000) * 4 */ >>> #endif >>> ... >>> >>> and to hell with bitfields, aliasing unions, etc. Unless I'm misreading >>> the whole thing, that is... Greg? >> >> I think you are right. This is much better. >> The old mc6800 is the odd one out, the rest have it in network order, >> and this makes that much clearer. > > Is that correct for Microblaze, which can be big or little endian? It is true for all architectures that use flat. All fields inside a flat format binary are store in network order. The final processing of the relocation entries in the elf2flt converter tool: for (i=0; i