[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Trouble with stdarg on ia64



On Tue, Apr 29, 2003 at 12:11:18AM +0200, Stefan Schroepfer wrote:
> "Ported to Alpha" doesn't necessarily mean "ported to 64-Bit".
> Remember: The DEC linker has/had a "magic" switch to turn all
> addresses into 32-Bit. This particular feature wasn't available
> in earlier Linux/Alpha versions.

I can't remeber me using any special linker switches and longs were
definitely 64 bits. And sizeof(long)!=sizeof(int) is what's now causing
problems on IA64 (XView basically treats everything as longs, and pointers
happen to fit in there).

I guess the main difference is the fact that the Alpha ABI guarantees that
if the caller passes an int but the callee expects a long, then the upper
32 bits of the long are properly sign- or zero-extended. On IA64, they're
undefined. :-(
But hacking gcc is definitely not something I'm prepared to do just to make
XView work...

Martin



Reply to: