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