Why do we need to support both versions? My research suggests that the new 
version replaces the old one, and the old one is now deprecated. Version 2 
exists in bookworm backports.

> On 25. Dec 2025, at 12:00, Bertho Stultiens <[email protected]> wrote:
> 
> On 12/24/25 9:15 PM, andy pugh wrote:
>>> A better alternative is to add two source/object files to the Makefile,
>>> one for V2 and the other for V3 with same internal API. Then use an all
>>> encompassing "#if V2" in one file and "#if v3" in the other. Both will
>>> always be linked, but one will be empty after compile,
>> I think that a problem here is that I want either file to compile into
>> the same HAL component (hal_gpio.so), so that the same HAL config will
>> work on systems with either libgpiod version.
>> The makefile creates compname.so (largely) based on the filename.
> 
> My suggestion was to use three files total:
> - hal_gpio.c (which becomes the .so)
> - hal_gpio_gpiod2.c (all V2 dependencies)
> - hal_gpio_gpiod3.c (all V3 dependencies)
> 
> Then add them to the Makefile:
> obj-$(CONFIG_HAL_GPIO) += hal_gpio.o hal_gpio_gpiod2.o hal_gpio_gpiod3.o
> hal_gpio-objs  :=            \
>    hal/drivers/hal_gpio.o            \
>    hal/drivers/hal_gpio_gpiod2.o       \
>    hal/drivers/hal_gpio_gpiod3.o       \
>    $(MATHSTUB)
> 
> 
> That said, I took a look at src/hal/drivers/hal_gpio.c and the integration of 
> libgpiod is quite tight in the code. It will require a bit of refactoring if 
> you split the dependencies into two separate files. It also requires you to 
> make a header file to announce the shared local API.
> 
> There is not too much code, which would suggest that you can get away with 
> some careful planning and (less) refactoring while using "#if V2/#if V3" 
> blocks in the sole source file. That would make it easier because the 
> declared structures are only local and no longer require a header. You 
> probably can suffice with few abstraction functions in the sole source file.
> 
> 
> --
> Greetings Bertho
> 
> (disclaimers are disclaimed)
> 
> 
> 
> _______________________________________________
> Emc-developers mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/emc-developers


_______________________________________________
Emc-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to