From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-x441.google.com (mail-pf1-x441.google.com [IPv6:2607:f8b0:4864:20::441]) by server2.sourceware.org (Postfix) with ESMTPS id 8C4A63949F28 for ; Mon, 9 Mar 2020 13:54:56 +0000 (GMT) Received: by mail-pf1-x441.google.com with SMTP id b72so1286506pfb.11 for ; Mon, 09 Mar 2020 06:54:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:openpgp:autocrypt:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=Vee9Fpdyd2jXTeNPjOEPH71qwZ5wwOdB9grxP+iVYqo=; b=ihz7xTn+qwTe8DHA4ZlpDPs5Y2g+EzEf75igHVudsjCM4zh0qPuK3V9oCfdRP6gSHO dtEfGeARo+Et0DgNlmRl5Mn/hr6aIJ0kP1vPCopjLn9+67/MaYIAqYn5G6o01bc4+Fr9 6SM3eAkqnUEBe5IhuvVltbGLasj6OeV49bS94pbqlzZX8QvCIgw7ZNRQUfDkpBoezQGG +xsTTEH1cwNporNcEv9FhF2VmFKWsvGpt39F74NS02wexBht09gowYvugPfje5PP5IIm WzjB6Uqm8hGdXjGmOahS4AI5UwCVi72HNsmGtK9i9LWghzFHHyKwLxZBSfNcMqaZ9/yL y8QQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:openpgp:autocrypt :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=Vee9Fpdyd2jXTeNPjOEPH71qwZ5wwOdB9grxP+iVYqo=; b=YVqk2yxL99Sn/kHrmb1sDv+IBYg8HvO0noO0w4GL7RQp6qnCSpDBNRp7cnTtXvMO1v /Nu6/lUm6h5nUfY+2ZtKdjqt+nZevg8A5qMe06eyzReDdvPY1hNZW9LE1UAvyTvzXiED 7gIBqR+yjSSBV3Tf27QhRxiklufFMdIOgv2ck8aku3QE6vsCTZjx0ZVRU4yueKFAyWvn CunDzqQ31zeBbTwbxbfqiqBwjrYYdl1K0QlC6crmIromzDUcKoQMras/re55pTYgGMx/ OT9g9BVC1gQ46SoooTOSYYUkbOEXmmXu2eD0SMg002wfXS6bXX8DiU8buawrTa63VnQ8 oy1Q== X-Gm-Message-State: ANhLgQ3XRl4M2O8dIavlLUWgNG/0TLqjw3rgCXhOn9InC9etJYtGblwa qcvdownELsumJa6m2WhZdRxZVad6 X-Google-Smtp-Source: ADFU+vuilBh53J9ebQkb/d250kHoG9n3zJ7JHZZJ1fETR/MNvMY0WYZHwiN79zDKxZmwK2DV13ftQA== X-Received: by 2002:a63:1d15:: with SMTP id d21mr17029327pgd.212.1583762095368; Mon, 09 Mar 2020 06:54:55 -0700 (PDT) Received: from [10.0.2.1] (61-245-154-180.3df59a.adl.nbn.aussiebb.net. [61.245.154.180]) by smtp.googlemail.com with ESMTPSA id md20sm5210161pjb.15.2020.03.09.06.54.54 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 09 Mar 2020 06:54:54 -0700 (PDT) Subject: Re: RFC: [PATCH] ELF: Don't require section header on ELF objects To: binutils@sourceware.org References: <20200308175947.GA911529@gmail.com> <87y2sac5er.fsf@mid.deneb.enyo.de> <79bc289f-9202-9aff-61c3-92c7190d2f7d@gmail.com> <20200309134427.GO5384@bubble.grove.modra.org> From: Kaylee Blake Openpgp: preference=signencrypt Autocrypt: addr=klkblake@gmail.com; prefer-encrypt=mutual; keydata= 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 EdpFPEpbpgoe5SmlCrB+cO0ATaAAA06SxQ== Message-ID: <871cf36a-5690-a8a7-68af-2cf0f54c5b5d@gmail.com> Date: Tue, 10 Mar 2020 00:24:51 +1030 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.0 MIME-Version: 1.0 In-Reply-To: <20200309134427.GO5384@bubble.grove.modra.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-1.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, HK_RANDOM_ENVFROM, HK_RANDOM_FROM, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS autolearn=no 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: Mon, 09 Mar 2020 13:54:57 -0000 On 10/3/20 12:14 am, Alan Modra wrote: > On Mon, Mar 09, 2020 at 11:24:44PM +1030, Kaylee Blake wrote: >> On 9/3/20 6:43 pm, Florian Weimer wrote: >>> In my opinion, it should NOT be possible to link against objects >>> without section headers. Lack of section headers clearly marks the >>> object as a run-time only object. This is useful if you want to >>> prevent developers to create DT_NEEDED dependencies on internal >>> libraries, for example. > > I agree. > >> For shared objects without debug symbols, the section header table is >> ~2kB on average of redundant data. I'm also not a fan of the >> inconsistency of having shared libraries that the dynamic linker is >> perfectly happy to load, but ld can't link against, especially since >> this seems like an oversight rather than an intended design decision. > > The ELF spec designed things that way. See figure 4.1 which I'll try > to represent in text. > > Figure 4-1: Object File Format > > |----------------------| |----------------------| > | ELF Header | | ELF Header | > |----------------------| |----------------------| > | Program header table | | Program header table | > | optional | | required | > |----------------------| |----------------------| > | Section 1 | | Segment 1 | > |----------------------| |----------------------| > | ... | | Segment 2 | > |----------------------| |----------------------| > | Section n | | Segment 3 | > |----------------------| |----------------------| > | ... | | ... | > |----------------------| |----------------------| > | Section header table | | Section header table | > | required | | optional | > |----------------------| |----------------------| > Linking View Execution View > I had interpreted that table in combination to various other references to which things are required vs optional in shared objects as meaning that the "execution view" applied to executables and shared objects, and the "linking view" applied to relocatable objects. You're saying that that table should be interpreted as saying that if a shared object is to be linkable, the spec is requiring it to have both sets of headers? -- Kaylee Blake C is the worst language, except for all the others.