On 05/11/2021 16.12, Olivier Hainque wrote:
> 
> 
>> On 5 Nov 2021, at 15:12, Rasmus Villemoes <rasmus.villem...@prevas.dk> wrote:

> We happen to also have a few fixincludes hunks around. Some of
> them have been there for years now and I thought would be nice to
> propagate at some point.
> 
> Do you use it?

Sort of, kind of. I have previously sent fixups for some of the vxworks
fixincludes, and I think I have a few more I could submit, but since I'm
able to modify our target headers directly that's often much easier.

For example, there's the mkdir fixup that adds

    #define mkdir(dir, ...) ((void)0, ##__VA_ARGS__, (mkdir)(dir))

But that macro doesn't play well with code in libstdc++ that says

    if (posix::mkdir(p.c_str(), mode))

because that expands to utter nonsense and breaks the build. A better
macro, also using the comma operator to have the mode argument evaluated
then ignored, would be something like

  #define mkdir(dir, mode) mkdir(((void)(mode), (dir)))

(or the variadic version to continue allowing a one-argument
invocation). But it was easier to just change the target header, making
that fixinclude pattern no longer apply - knowing that if we ever
compile the mkdir implementation [we have parts of the kernel sources,
but not all], we'll have to fixup the definition.

The one fixinclude-related problem I have is the stdint.h one I've
mentioned previously.

Rasmus

Reply via email to