tech-userlevel archive

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

Re: Conflicting fuse_opt.h



Hi,

On Wed, Mar 23, 2022 at 02:28:39PM +0000, Emmanuel Dreyfus wrote:
> I am almost certain I already raised that question, but I could not find 
> where, and the issue remains to be fixed.
> 
> NetBSD's src/lib/librefuse/fuse_opt.h
> struct fuse_opt {
>         const char      *templ;
>         int32_t         offset;
>         int32_t         value;
> };    
> 
> libfuse's https://github.com/libfuse/libfuse/blob/master/include/fuse_opt.h
> defines (comment striped for the sake of clarity):
> struct fuse_opt {
> 	const char *templ;
> 	unsigned long offset;
> 	int value;
> };
> 
> That is fine on IPL32 but breaks on LP64, especially when a program used 
> one header, and a plugin used another. But how should that be fixed? If
> I fix NetBSD's version, I will certainly break some software that used
> the old header and link with a new library.

If you want portable code, i'd refrain from using underspecified types like
`long' and just plain `int' in an interface! But that aside...

If the programs and the plugins are compiled on NetBSD, will they still see
the `orginal' header file? Or do you suspect that they might have their own
copies around that break on linking?

Reinoud



Home | Main Index | Thread Index | Old Index