0

I have a Raspberry Pi that is being used to build and run a C program that tests some custom hardware attached to its GPIO header. The code is not relevant and is not something I can share anyway.

It builds fine on Raspberry Pi OS directly with the version of GCC installed with apt. However, since we are trying to ensure a controlled and isolated CI environment, we are using Pixi, which is built on top of Conda.

In a Conda/Pixi environment with the exact same version of GCC installed, building fails in parts of the code that communicate with the attached test device. After considerable digging, we managed to track down what is probably the main problem: the version of gpio.h installed at the system level is not the same as the Conda/Pixi version, which is a third of the size and is essentially totally different. For instance, a crucial include statement is missing right at the beginning.

It is interesting the file is not present at all in the Conda/Pixi environment until GCC is installed.

Could it be that the Conda/Pixi version of GCC is a generic aarch64 package, whereas the system version of GCC is heavily customized to make it Raspberry Pi-specific? We also tried overwriting the Pixi version of gpio.h with the system version, but even then we get build errors like complaints about _Bool not being the same as bool, even though they should be interchangeable.

Is there a reasonably easy way to fix this or should we start looking for an alternative?

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.