Open reidpr opened 2 years ago
Can you submit a PR with a suggested fix?
We don’t have the expertise on this project to submit a PR; sorry.
I don't really understand how your workaround works or what it does. I don't see how it can get away with ignoring all the config.h definitions determined by configure.
config.h
is an internal header and shouldn't be exposed to other programs using the library. Thus, it was fine to have it included by ll.h
when there was no shared library, but now that there is, including that file may break any library user that also uses Autoconf.
The workaround above works by preventing ll.h
from defining the specific symbols that clash with Charliecloud's build. It is not a general fix. The general fix would be to separate the SquashFUSE headers into internal and external (which requires knowledge of SquashFUSE we don't have).
I see, that makes sense. Perhaps the developer of the library interface @haampie could come up with a PR for that?
Here are the config.h-related things in squashfuse headers:
Thanks for the library support (PR #59); this helps us a lot!!
One challenge we ran into is that
ll.h
includes (via some intermediate headers IIRC) the Autoconf-producedconfig.h
. This clashes with two things:config.h
, and_POSIX_C_SOURCE
to a different value than our project.We did find a workaround:
(Note that we are libfuse3 only so that's why it seemed OK to define
FUSE_USE_VERSION
unconditionally.)But it would be nice if there were an externally-facing header to include.