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. -- viresh