From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8318 invoked by alias); 28 Aug 2009 14:31:54 -0000 Received: (qmail 8303 invoked by uid 22791); 28 Aug 2009 14:31:52 -0000 X-SWARE-Spam-Status: No, hits=-2.3 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from nschwmtas04p.mx.bigpond.com (HELO nschwmtas04p.mx.bigpond.com) (61.9.189.146) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 28 Aug 2009 14:31:45 +0000 Received: from nschwotgx02p.mx.bigpond.com ([121.209.33.16]) by nschwmtas04p.mx.bigpond.com with ESMTP id <20090828143142.EVEO2030.nschwmtas04p.mx.bigpond.com@nschwotgx02p.mx.bigpond.com>; Fri, 28 Aug 2009 14:31:42 +0000 Received: from bubble.grove.modra.org ([121.209.33.16]) by nschwotgx02p.mx.bigpond.com with ESMTP id <20090828143141.EFZV4842.nschwotgx02p.mx.bigpond.com@bubble.grove.modra.org>; Fri, 28 Aug 2009 14:31:41 +0000 Received: by bubble.grove.modra.org (Postfix, from userid 1000) id B151A170C880; Sat, 29 Aug 2009 00:01:41 +0930 (CST) Date: Fri, 28 Aug 2009 14:48:00 -0000 From: Alan Modra To: "H.J. Lu" Cc: binutils Subject: Re: PATCH: PR ld/10569: -z max-page-size may not work for linker scripts Message-ID: <20090828143141.GK19523@bubble.grove.modra.org> Mail-Followup-To: "H.J. Lu" , binutils References: <20090828000233.GA23692@lucon.org> <20090828031410.GC19523@bubble.grove.modra.org> <6dc9ffc80908272032p5b5a54a6h75caad74a27ffeda@mail.gmail.com> <6dc9ffc80908272055l3daa1368l1f84cfafcc07c2de@mail.gmail.com> <20090828055016.GE19523@bubble.grove.modra.org> <6dc9ffc80908280640q35b52922gda316d43127b7ab7@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <6dc9ffc80908280640q35b52922gda316d43127b7ab7@mail.gmail.com> User-Agent: Mutt/1.5.17+20080114 (2008-01-14) X-RPD-ScanID: Class unknown; VirusThreatLevel unknown, RefID str=0001.0A150204.4A97EA4E.007A,ss=1,fgs=0 X-SIH-MSG-ID: rRgwFtf+TAD0zmRy0WWwOwRzyFrsq3B48Z4QWs1mqRMGT0XduMfONYj6Y9IElp7k3C5NMhCGP2skYbzmXY/YiA== X-IsSubscribed: yes Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org X-SW-Source: 2009-08/txt/msg00532.txt.bz2 On Fri, Aug 28, 2009 at 06:40:42AM -0700, H.J. Lu wrote: > On Thu, Aug 27, 2009 at 10:50 PM, Alan Modra wrote: > > On Thu, Aug 27, 2009 at 08:55:46PM -0700, H.J. Lu wrote: > >> On Thu, Aug 27, 2009 at 8:32 PM, H.J. Lu wrote: > >> > On Thu, Aug 27, 2009 at 8:14 PM, Alan Modra wrote: > >> >> I think this is the wrong place to call bfd_emul_set_maxpagesize > >> >> (and the current call in elf32.em is wrong too).  You probably should > >> >> be calling bfd_emul_set_maxpagesize in open_output.  Also, > >> > > >> > Will open_output be called before any linker scripts are processed? > > > > Depends on what you mean by processed.  Yes, they are parsed and > > converted to internal format before open_output, but why does it > > matter?  Nothing much depends on maxpagesize until > > lang_size_sections. > > This linker script: > > --- > SECTIONS > { > .text : {*(.text)} > . = ALIGN(CONSTANT (MAXPAGESIZE)); > .data : {*(.data)} > /DISCARD/ : {*(*)} > } > --- > > calls fold_name on MAXPAGESIZE before open_output is called. You are allowed to fail in fold_name if output_target is not set. See many other examples where we return !result.valid_p if attempting to evaluate early in the link. > > Why can't you use output_target? > > > > We may set and get page sizes in linker. In linker script, we should use > emulation target, which may be different from output target, to get > page size, We need to set page size for emulation target in > gld${EMULATION_NAME}_handle_option. We also need to set page > size for output target in ldemul_set_output_arch. If you accept a fail in fold_name, then I think your argument collapses. After output_target has been set, that's the right target to use. -- Alan Modra Australia Development Lab, IBM