From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28340 invoked by alias); 2 Feb 2005 13:56:57 -0000 Mailing-List: contact binutils-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sources.redhat.com Received: (qmail 28231 invoked from network); 2 Feb 2005 13:56:47 -0000 Received: from unknown (HELO emea1-mh.id2.novell.com) (195.33.99.129) by sourceware.org with SMTP; 2 Feb 2005 13:56:47 -0000 Received: from EMEA1-MTA by emea1-mh.id2.novell.com with Novell_GroupWise; Wed, 02 Feb 2005 13:56:46 +0100 Message-Id: Date: Wed, 02 Feb 2005 13:56:00 -0000 From: "Jan Beulich" To: Cc: Subject: Re: [PATCH] ia64 unwind directive semantics Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline X-SW-Source: 2005-02/txt/msg00053.txt.bz2 Sure, that's exactly what the (generated) assembly file asks for: .proc and .endp are there, but the symbol surely can't get defined there (because it has to live in crti.s). You have to either remove the ill .proc/.endp pairs (and thus also the unwind info), or give these (currently anonymous) functions names (i.e. .init and .fini, hiding them completely from the outside world). The whole setup seems a little odd to me, though: By having these procedures split into two pieces (with, in the final executable, an intervening range not covered by a procedure at all), unwind information will be useless during the execution of all the init/fini functions (not even their sizes will be set correctly), and thus the use of .proc/.endp is pointless here except for the implict setting of the symbol's type. I'd consider it much cleaner if it used just a label and a .type directive. In any case, the change to gas is correct (and both Jim Wilson, who approved it, and I expected cases like this to come up). Jan >>> Alan Modra 02.02.05 09:16:15 >>> On Mon, Jan 24, 2005 at 12:29:07PM +0100, Jan Beulich wrote: > (dot_endp): Call in_procedure. Declare proc_end. Check for non-zero- > length entry point names. Check that entry points became defined. This one breaks glibc build. csu/crtn.S: Assembler messages: csu/crtn.S:22: Error: `_init#' was not defined within procedure csu/crtn.S:36: Error: `_fini#' was not defined within procedure -- Alan Modra IBM OzLabs - Linux Technology Centre