On 10-12-21, 09:08, Viresh Kumar wrote: > On 09-12-21, 19:32, Bartosz Golaszewski wrote: > > On Thu, Dec 9, 2021 at 4:17 PM Andy Shevchenko > > <andy.shevchenko@xxxxxxxxx> wrote: > > > > > > On Thu, Dec 9, 2021 at 5:15 PM Viresh Kumar <viresh.kumar@xxxxxxxxxx> wrote: > > > > > > > > Musl defines the _IO*() macros in the files included via <sys/ioctl.h> > > > > and hence we get redefinition errors during build as <linux/ioctl.h>, > > > > included via <uapi/gpio.h>, defines them again. > > > > > > > > Fix this by undefining the macros between both the includes, document it > > > > all in musl-compat.h as well. > > > > > > Is it only me who wonders why it should be fixed here? > > > > > > -- > > > With Best Regards, > > > Andy Shevchenko > > > > No, I'm wondering the same. I see these musl compat issues being > > "fixed" in half the embedded linux projects. Looks to me musl > > introduces these issues, doesn't it? Any reason for it? Can it be > > fixed in the library? > > Not sure if I can go fix musl here :) > > Btw, another thing that will work better is if we do this: > > diff --git a/include/uapi/linux/gpio.h b/include/uapi/linux/gpio.h > index eaaea3d8e6b4..ebf6b5312cc0 100644 > --- a/include/uapi/linux/gpio.h > +++ b/include/uapi/linux/gpio.h > @@ -12,8 +12,8 @@ > #define _UAPI_GPIO_H_ > > #include <linux/const.h> > -#include <linux/ioctl.h> > #include <linux/types.h> > +#include <sys/ioctl.h> > > /* > * The maximum size of name and label arrays. > > > > That will fix it properly as well, no undef issues on any library > then. Some of the files in uapi already do this. This got fixed somehow after I played a bit with the toolchain for musl. Abandoning this change for now. -- viresh