Subject: 64-bit ABIs
To: None <firstname.lastname@example.org>
From: Ben Harris <email@example.com>
Date: 04/29/2003 12:39:51
At the moment, the return type of inet_addr() in NetBSD is unsigned long.
In version 2 of the Single Unix Standard, and now POSIX, it's specified as
in_addr_t, which is equivalent to uint32_t. Fixing this would obviously
cause no problems on ILP32 systems, but I can imagine it might upset LP64
So, my question is: are there any systems on which the ABI differs for
functions which return uint32_t as opposed to unsigned long? For the
obvious implementation (function return value in a register), I'd expect
not, but I'd like confirmation of this so I can decide how to proceed.
Similarly, inet_makeaddr is specified as having in_addr_t arguments, but
we have it taking u_long. Do any of our current LP64 ABIs break if we
change a u_long argument to a uint32_t?
Ben Harris <firstname.lastname@example.org>
Portmaster, NetBSD/acorn26 <URL:http://www.netbsd.org/Ports/acorn26/>