h8300, m32c and PRIuPTR

Yaakov Selkowitz yselkowi@redhat.com
Tue Mar 17 15:52:00 GMT 2015


On Tue, 2015-03-17 at 09:58 -0500, Joel Sherrill wrote:
> On 3/17/2015 4:45 AM, Corinna Vinschen wrote:
> > Anyway.  Aren't we moving away from the original problem?  The original
> > problem was, afaics, related to target multilibs which produce uintptr_t
> > types different from the ones configured.
> I thought we also had to replace the configure.in logic that determined if
> uintptr_t was "long unsigned int" or just "unsigned int".  That check
> only produces the correct result with the type of uintptr_t doesn't
> change by multilib.
> > Why is that so?  Shouldn't the configury have catched that for each
> > multilib?  If not, why not, and how do we fix that?
> I think that since there is only one config.h generated and installed,
> it may work
> out ok for building (not sure) but once installed, only one answer is
> available.
> > Do we really gain anything by introducing a massive ifdef mentioning
> > all targets out there?  This looks like overkill.
> One approach is to leave the configure logic and add exceptions in
> inttypes.h
> (or sys/config.h) for the targets which have variations in uintptr_t
> definition
> based on multilib.  The static configure.in check gets all but 2?
> targets right.
> 
> Yaakov.. are m32c and h8300 the only cases where inttypes_t varies based
> on multilib settings?

I don't have m32c atm (PR64403), but aarch64{,_be}, h8300, msp430, and
sh64 all had different results for certain multilibs.  

> If that's the case, we could probably get by with something like this
> in either sys/config.h:
> 
> #if m32c || h8300
>   #undef setting from configure.in
>   logic to set appropriate cpp macro from configure.in correctly
> #endif

configure is run for every single multilib separately, so why would this
be necessary?

-- 
Yaakov Selkowitz
Associate Software Engineer, ARM
Red Hat, Inc.




More information about the Newlib mailing list