Raul Miller wrote: > J uses a hack where doubles are passed as long. This works on other > OSes but not on openbsd.
This seems suspect. There's no guarantee double and long are the same size. > I was under the impression that gcc passes all values on the stack, > not in floating point registers or anything like that? This depends a lot on the CPU, but gcc on openbsd generally behaves the same as on any other OS with the same CPU. > I also wind up spending a fair amount of time in ld.so -- maybe I'll > be able to find my way through all the detail, but mostly I'm just as > lost using gdb as with any other approach. I doubt ld.so really has much to do with it. > Basically, though, I don't know what I am looking for, so I don't know > how to tell when I am getting close to it. > > Does anyone know how I should approach this issue? (Is there anything > specific to OpenBSD which should be relevant here, or should I > strictly focus on gcc issues?) Looking at the disassembly for the stub code may help. It sounds like you may be missing a prototype somewhere and are getting implicit conversions.
