This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Ada runtime 64 bit fixes
Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> writes:
|> Andreas Schwab <schwab@suse.de> writes:
|>
|> > The POSIX style System.OS_Primitives assumes that time_t == Integer. This
|> > is wrong for 64 bit architectures, where time_t is a 64 bit integer. The
|> > same is true for the tv_usec member of struct_timeval. For 32 bit targets
|> > this should make no difference.
|>
|> This is certainly not true for all 64-bit systems: e.g. Tru64 UNIX still has
|>
|> typedef int time_t;
|>
|> in <time_t.h>. Similarly on IRIX 6: the 32-bit ABIs use
|>
|> typedef long time_t;
|>
|> while the N64 ABI (LP64) has
|>
|> typedef int time_t;
|>
|> in <sys/types.h>.
|>
|> Only Solaris 7 and up always has
|>
|> typedef long time_t;
|>
|> i.e. time_t is different on 32-bit and 64-bit kernels.
How can this be solved? Any modern 64-bit system should have a 64 bit
time_t, so the 32 bit time_t should be the exception, not the rule, IMHO.
Andreas.
--
Andreas Schwab "And now for something
Andreas.Schwab@suse.de completely different."
SuSE Labs, SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5