This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] ia64 unwind directive semantics


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 <amodra@bigpond.net.au> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]