In article <pn1n59$oj0$1...@blaine.gmane.org>,
Christos Zoulas <chris...@astron.com> wrote:
>In article <20180908230813.ga22...@sdf.org>,  <co...@sdf.org> wrote:
>>we do this in stdint.h and some other headers:
>>
>>#ifndef uint32_t
>>typedef __uint32_t      uint32_t;
>>#define uint32_t        __uint32_t
>>#endif
>>
>>
>>Real-world examples:
>>https://github.com/neovim/neovim/blob/94841e5eaebc3f2fb556056dd676afff21ff5d23/src/nvim/map.h#L12
>>https://github.com/NetBSD/pkgsrc/blob/trunk/www/firefox/patches/patch-servo_components_style_build__gecko.rs
>>
>>And now I ran into:
>>https://cgit.freedesktop.org/mesa/mesa/tree/src/compiler/builtin_type_macros.h#n42
>>
>>Proposal: let's not define the macros?
>>I don't know if there are long running consequences for it.
>
>The problem is that these are defined in multiple headers and
>typedef redefinition with the same type is a c11 feature, so the
>define protects against that. Of course one can use a different
>macro and this was done before, but this has other disadvantages.

The other approach is:

#ifdef  _BSD_TIME_T_
typedef _BSD_TIME_T_    time_t;
#undef  _BSD_TIME_T_
#endif

christos

Reply via email to