From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1190 invoked by alias); 28 Oct 2016 12:46:58 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 1170 invoked by uid 89); 28 Oct 2016 12:46:57 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.2 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,RP_MATCHES_RCVD,SPF_PASS,URIBL_RED autolearn=ham version=3.3.2 spammy=HTo:U*roland, bare, balance, risk X-HELO: mailapp01.imgtec.com From: Matthew Fortune To: Sandra Loosemore , Joseph Myers , "roland@hack.frob.com" CC: "libc-alpha@sourceware.org" , Petar Jovanovic Subject: RE: [PATCH] Initialise the machine specific part of rtld bootstrap map Date: Fri, 28 Oct 2016 12:46:00 -0000 Message-ID: <6D39441BF12EF246A7ABCE6654B0235380AAEA44@HHMAIL01.hh.imgtec.org> References: <6D39441BF12EF246A7ABCE6654B0235380AABFF9@HHMAIL01.hh.imgtec.org> <6D39441BF12EF246A7ABCE6654B0235380AAC147@HHMAIL01.hh.imgtec.org> <58111B09.1070906@codesourcery.com> In-Reply-To: <58111B09.1070906@codesourcery.com> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-SW-Source: 2016-10/txt/msg00518.txt.bz2 Sandra Loosemore writes: > On 10/26/2016 03:01 PM, Matthew Fortune wrote: > > Joseph Myers writes: > >> On Wed, 26 Oct 2016, Matthew Fortune wrote: > >> > >>> +# ifdef ELF_MACHINE_INIT_MAP > >>> + ELF_MACHINE_INIT_MAP (bootstrap_map); # endif > >> > >> We don't encourage use of #ifdef like that. It's better to have an > >> inline function defined everywhere and used unconditionally, for > >> which most systems have a dummy definition (see > >> dl-machine-reject-phdr.h and elf_machine_reject_phdr_p for an example > >> - if you have a header for a single function, you don't need to > >> update lots of dl-machine.h headers, just add a generic version - > >> which has the comments detailing the semantics of the function and > when it's needed - and a MIPS version). > > > > Thanks Joseph. It's been a while since I did a glibc patch and > > couldn't remember the recommended approach. > > > > Do you think I should add a whole new header for this? Or, since this > > is directly related to the reject_phdr feature for MIPS and only MIPS > > is affected then I could just add it to dl-machine-reject-phdr.h? >=20 > Wouldn't it be easier and more maintainable just to unconditionally > zero-initialize the structure, as I did in the original patch? I'd like to get some consensus on the best solution here before I do another implementation. We either go for: 1) The bare minimum to initialise just the fields that must be zero for successful execution on a per architecture basis (and live with the associated risk of missing some) or 2) Unconditionally zero the whole l_mach link_map_machine structure Or 3) Unconditionally zero the entire link_map Given these I'd actually go for (2) as a good balance. Thanks, Matthew