5 ms·
> Is this a reflection of the sad state of C library packaging? No, it's more of a reflection of how many different ISAs and compilers there are for C. To get
by acuozzo 2y ago
> Is this a reflection of the sad state of C library packaging?
No, it's more of a reflection of how many different ISAs and compilers there are for C.
To get a packaging system going for C you'd have to support quite a few of them and, even then, some degree of forensic analysis would have to be done for existing codebases in order to determine if they truly support what they claim to support.
For instance, in 2017 I had to modify hiredis to properly support the Qualcomm Snapdragon 800 since it had quite a few instances of type punning which were causing bus errors.
Did hiredis support this platform in 2017? Who knows?! Hell, it doesn't even mention on its GitHub which ISAs and compilers it's intended to support.
At MINIMUM, packages need something akin to the table on the following page in order to get a packaging system going for C: https://liblfds.org https://liblfds.org
--
I work with C daily. Unfortunately, I so often have to patch dependencies to work on the targets I support that I'm in the habit of "vendoring" any code I depend on. This practice, I imagine, is pretty common for multi-platform C projects.