RE: The sized datatypes, Sun Solaris 8, SunPRO cc

From: Chemolli Francesco (USI) <ChemolliF@dont-contact.us>
Date: Tue, 9 Oct 2001 09:11:16 +0200

> Hi.
>
> When building on Solaris 8 using SunPRO cc the following pops
> up during
> configure:
>
> checking size of __int64... 0
> checking size of int16_t... 0
> checking size of uint16_t... 0
> checking size of u_int16_t... 0
> checking size of int32_t... 0
> checking size of uint32_t... 0
> checking size of u_int32_t... 0
> checking size of int64_t... 0
> checking size of uint64_t... 0
> checking size of u_int64_t... 0

This means that those types do not appear to be available

> checking for int16_t... yes
> checking for u_int16_t... no
> checking for int32_t... yes
> checking for u_int32_t... no
> checking for int64_t... yes
> checking for u_int64_t... no

Or rather, some are and some aren't.

> Is this something to worry about? Or does it only mean that
> these types
> are not available on this platform?

Correct. We should try to work around this. Unfortunately WRT type
detection autoconf has some brain-damage I should try to work
around. Time is scarce though right now.

> Hmm.. shouldn't the availably checks be done before checking
> the sizes?

That should be the correct idea, however if I did that, autoconf
would cache the results and not perform any checks later, after
we had probed the missing sizes. The problem is: how do we defeat
caching?

> I don't quite grasp this part of configure. Why is there all
> these size
> checks of various flawors when we then have a single set defined by
> either existing definitions or base types?

See above.

> Why do we at all run size tests on types which should be
> assumed to have
> a certain size?

Because that's not cached. If size==0, the type is not available.

The code used to be (pseudo_code):
if ! have_int16_t
        check_int_size
                int16_t=int
        else check_short_size
                int16_t=short
        else ....
endif

I had to rework it like it's now because it wouldn't perform
the assigns (which are actually a macro call)

> And why is these sizes reported as 0 even on types which seem to later
> exists? Such as the int16_t..

That's a mystery.

-- 
	/kinkie
Received on Tue Oct 09 2001 - 01:01:12 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:14:26 MST