Some more on this…


The reason I’m getting into this is from the error message:


fusermount: mount failed: Invalid argument


I see from searching the mailing list archives that this is a common error message, and I’m pretty certain that I’m dealing with some dynamic linker weirdness, because when I comment out the .symver directives, all works great.  (I figured this out by checking what routines I were really being called, and the _compat() versions of many of the functions were being called, causing the problems: so I guessed and tried removing the .symver statements, which got me into the correct versions of the routines, and then it all works)


The programs in example/ (like “hello” and “fusexmp”) produce the same behavior as owfs, so now I have a simpler example, and know the problem is not related to owfs at all.


I’m at a loss as to where to go from here now.


Any ideas?  Where do I start looking to debug a dynamic linker problem or incompatibility?  Or am I completely off base?


Again, I’m cross-compiling for OpenWRT with a 2.4 kernel.  OpenWRT is a port for MIPS processors on Linksys routers.







I seem to be having a problem with FUSE versioning in fuse-2.6.0pre2…


I ported fuse-2.6.0pre2 to OpenWRT, but when I link libfuse with owfs-2.3p7, the linker links owfs to the older backward-compatible versions of some of the FUSE code.  Specifically, it seems to be anything where fuse uses .symver directives.


In my current case, statfs() had changed, and if I comment out these:


__asm__(".symver fuse_reply_statfs_compat,fuse_reply_statfs@FUSE_2.4");

__asm__(".symver fuse_reply_open_compat,fuse_reply_open@FUSE_2.4");

__asm__(".symver fuse_lowlevel_new_compat,fuse_lowlevel_new@FUSE_2.4");


from fuse_lowlevel.c, it works great.  I had similar problems with fuse_mount().  It seems to link incorrectly whenever a .symver is used.


I’m compiling owfs with FUSE_USE_VERSION=26.


Any ideas on where this weirdness might be coming from?


From what I can tell from the code, the compiler directive should work…