time_t on sparc64

Harti Brandt brandt at fokus.fraunhofer.de
Wed Oct 15 02:02:47 PDT 2003

On Wed, 15 Oct 2003, John-Mark Gurney wrote:

JG>Marcel Moolenaar wrote this message on Wed, Oct 15, 2003 at 00:44 -0700:
JG>> Yes. The MI code is already done and there's not much MD code that
JG>> is expected to break. It's mostly the structures that change. This
JG>> is especially painful on sparc64 because it's big-endian. I assume
JG>> that sparc64 passes syscall arguments in registers, so the syscalls
JG>> that take a time_t do not change except that there's no sign extension
JG>> prior to use. You can preserve the ABI until 2038 by ignoring the
JG>> upper 32-bits in that case.
JG>There is if you load a signed 32bit value into the register...  sparc
JG>will automaticly sign extend the register when loading a 32bit value..
JG>This was done to be backwards compatible with sparcv8.
JG>So the question is, does the values get loaded into different registers?
JG>or are they packed into a single register?

I guess, IF we go the road now to change time_t to 64 bit, we should NOW
break the ABI (if this change breaks the ABI). This brings us more in line
with other systems and platforms and is a lot less problematic now that we
have only -current than later. I suggest we do it NOW especially given
that ia64 already does this and, obviously, has worked out the MI

harti brandt,
brandt at fokus.fraunhofer.de, harti at freebsd.org

More information about the freebsd-standards mailing list