This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Problems building GNAT on OS X with top-of-tree
- From: Geert Bosch <bosch at gnat dot com>
- To: Dale Johannesen <dalej at apple dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Wed, 16 Oct 2002 14:29:46 -0400
- Subject: Re: Problems building GNAT on OS X with top-of-tree
On Wednesday, Oct 16, 2002, at 13:47 America/New_York, Dale Johannesen
wrote:
No, that is supposed to be OK. non_lazy_ptr's are used for
references to the address of a function (pointer-to-function) like
this:
extern int (*f)(int (*)());
main() {
(*f)(f);
}
.text ....
_main: ....
bcl 20,31,L1$pb
L1$pb: ....
addis r9,r31,ha16(L_f$non_lazy_ptr-L1$pb)
lwz r11,lo16(L_f$non_lazy_ptr-L1$pb)(r9)
addis r9,r31,ha16(L_f$non_lazy_ptr-L1$pb)
lwz r9,lo16(L_f$non_lazy_ptr-L1$pb)(r9)
lwz r0,0(r11)
lwz r3,0(r9)
mr r12,r0
mtctr r12
bctrl
....
.data
.non_lazy_symbol_pointer
L_f$non_lazy_ptr:
.indirect_symbol _f
So what's different about yours?
It seems to be the same. It doesn't help that the assembly
message seems to refer to a location in the output file, which
is not written to disk. Anyway, I'll send you the a-except.s
file in a private email. Thanks for your help!
-Geert
.text
...
L42$pb:
...
addis r9,r31,ha16(
L_system__soft_links__get_jmpbuf_address$non_lazy_ptr-L42$pb)
lwz r9,lo16(
L_system__soft_links__get_jmpbuf_address$non_lazy_ptr-L42$pb)(r9)
lwz r9,0(r9)
mtctr r9
bctrl
...
.data
...
.non_lazy_symbol_ptr
...
L_system__soft_links__get_jmpbuf_address$non_lazy_ptr:
.indirect_symbol _system__soft_links__get_jmpbuf_address
.long 0