Re: [libgpiod][PATCH 6/6] core: add the kernel uapi header to the repository

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jan 11, 2021 at 03:06:28PM +0100, Bartosz Golaszewski wrote:
> On Mon, Jan 11, 2021 at 2:45 PM Andy Shevchenko
> <andy.shevchenko@xxxxxxxxx> wrote:
> >
> > On Mon, Jan 11, 2021 at 3:37 PM Bartosz Golaszewski <brgl@xxxxxxxx> wrote:
> > >
> > > From: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx>
> > >
> > > In order to avoid any problems with symbols missing from the host linux
> > > kernel headers (for example: if current version of libgpiod supports
> > > features that were added recently to the kernel but the host headers are
> > > outdated and don't export required symbols) let's add the uapi header to
> > > the repository and include it instead of the one in /usr/include/linux.
> >
> > I doubt this is a good decision. First of all if the host (or rather
> > target, because host should not influence build of libgpiod) has
> 
> I meant the host as in: the machine on which you build and which
> contains the headers for the target as well but I see what you mean.
> 
> > outdated header it may be for a reason (it runs old kernel).
> > When you run new library on outdated kernel it might produce various
> > of interesting errors (in general, I haven't investigated libgpiod
> > case).
> > On top of that you make a copy'n'paste source code which is against
> > the Unix way.
> >
> > Sorry, but I'm in favour of dropping this one.
> >
> 
> Cc: Thomas
> 
> This problem has been raised by the buildroot people when we started
> requiring different versions of kernel headers to build v1.4 and v1.6.
> It turns out most projects simply package the uapi headers together
> with their sources (e.g. wpa_supplicant, libnl, iproute2) to avoid
> complicated dependencies. It's true that now the library can fail at
> runtime but I'm fine with that. Also: if we add new features between
> two kernel versions, we still allow to build the new library version
> except that these new features won't work on older kernels.

I see.

So known ways to solve this are
 - provide a header with source tree (see above)
 - modify code with ifdeffery against specific kernel versions
 - ...something else... ?

Second item is what ALSA used (not sure if they provide a standalone driver
anymore). Ugly, but won't require header which may be staled.

Any other solutions in mind?


-- 
With Best Regards,
Andy Shevchenko





[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux