On 17/12/2021 15.12, Olivier Hainque wrote:
> Hi Rasmus
> 
>> On 17 Dec 2021, at 13:49, Rasmus Villemoes <rasmus.villem...@prevas.dk> 
>> wrote:
> 
>> I'm not sure what to do. But this patch will definitely break our build
>> - primarily because we've done a private workaround.
> 
> I don't think we can reasonably cope with private changes
> to system headers.

Of course not. And I'm more than willing to undo that private change if
a suitable fix can be worked out.

> Can't you just undo your workaround and use this (very simple)
> "fix" instead?

No, because as I explained, the open() implementation on vxworks 5.5
must not be called as a two-arg function with garbage in r5. Do you have
access to any of the kernel source code for the other vxworks versions
with a three-arg-only open() in fcntl.h? If not, how can you know that
those kernels do not make use of the mode argument even if O_CREAT is
not in flags? (For example, I could actually imagine an implementation
where non-zero mode would imply O_CREAT. Then 'open("foo", O_RDWR)'
could result in foo being created with a more-or-less random mode, where
it should have resulted in ENOENT.)

I'm sure libstdc++ builds with this change, as I said I had the same
thing initially, but after looking at the open() implementation we were
worried about the implications.

> Otherwise, add a local patch to your tree to remove this fix?

Always an option, of course.

Rasmus

Reply via email to