tech-toolchain archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Conflict between system and compiler types
> On Feb 4, 2019, at 3:23 PM, matthew green <mrg%eterna.com.au@localhost> wrote:
>
> Christos Zoulas writes:
>> In article <f87d8d38-ca50-7cb5-0716-4f894070fa0d%gmx.com@localhost>,
>> Kamil Rytarowski <n54%gmx.com@localhost> wrote:
>>>
>>> The bar for a compiler using our native headers is already higher than
>>> that so this doesn't change anything.
>>>
>>> It's a stronger proposal but we could require these types and remove
>>> entirely homegrown redefinitions and maintain the types directly in
>>> compilers.
>>>
>>> There is already a header using the compiler builtins.
>>>
>>> https://nxr.netbsd.org/xref/src/sys/sys/common_ansi.h#65
>>>
>>> OR1K and RISCV use them from the start.
>>>
>>> So the current proposal is to replace all src/sys/arch/*/include/ansi.h
>>> with a single include of sys/common_ansi.h, analogously to RICCV and OR1K.
>>>
>>> What do you think?
>>
>> It is not as simple as that. We have c++ to thank for that and the
>> encoding of types in function name mangling. For example there are
>> 32 bit architectures where size_t is unsigned int and not unsigned
>> long and they need to be handled specially. I think that the best
>> way is to do it gradually and handle the easy ones first...
>
> i'm fairly sure this is already correct because you get compiler
> warnings if you don't do it properly. don't you recall when we
> made sparc use 'long' for a bunch of things so it would be the
> same as sparc64? :) we had build failures reported for ages..
>
> i'm not worried about this proposal. the only request i have is
> to ensure that all existing header paths continue to work (ie,
> machine/ansi.h should continue to publish the same things, even
> if it is no longer the source of truth.)
That's exactly what I remember :-) Plus the "long long" vs "long"...
I am afraid that if we provide "backup" values in case the provider
ones are not available, these might need ifdefs...
christos
Home |
Main Index |
Thread Index |
Old Index