Hi Erik, You're right. I've re-tested the __DARWIN_64_BIT_INO_T=0 define with the hello filesystem, and it works when linked against -lfuse. My own filesystem however does still have the I/O error problem (not with the other 2 approaches).
Best regards, Frank On Sep 12, 4:15 pm, Erik Larsson <[email protected]> wrote: > For the loopback file system, defining __DARWIN_64_BIT_INO_T to 0 does > work in combination with -lfuse. > Example: gcc -o loopback -D__FreeBSD__=10 -D_FILE_OFFSET_BITS=64 > -D__DARWIN_64_BIT_INO_T=0 -lfuse loopback.c > > Are you sure you're definining it before anything else, and that you're > not linking to other files compiled with different parameters? > > - Erik > > f...@nk wrote 2009-09-12 15.48: > > > > > Thanks a lot for your support Tomas and Erik! The first 2 proposed > > solutions do fix the problem. Defining __DARWIN_64_BIT_INO_T=0 before > > including fuse.h, and linking against -lfuse, does not seem to work. > > > Best regards, > > Frank > > > On Sep 12, 2:41 pm, Erik Larsson<[email protected]> wrote: > > >> Erik Larsson wrote 2009-09-12 14.36: > > >>> Tomas Carnecky wrote 2009-09-12 14.31: > > >>>> On Sep 8, 2009, at 11:32 AM, f...@nk wrote: > > >>>>> Hello, > > >>>>> After upgrading to Snow Leopard and MacFUSE 2.1.5 (Beta), I have an > >>>>> issue that I didn't have before the upgrade. Each access to any > >>>>> mounted fuse filesystem (even the example filesystems provided with > >>>>> the fuse library), will result in an I/O error. > > >>>>> For instance, the hello filesystem: > > >>>>> % ./hello -d mount > >>>>> unique: 0, opcode: INIT (26), nodeid: 0, insize: 56 > >>>>> INIT: 7.8 > >>>>> flags=0x00000000 > >>>>> max_readahead=0x00100000 > >>>>> INIT: 7.8 > >>>>> flags=0x00000000 > >>>>> max_readahead=0x00100000 > >>>>> max_write=0x00400000 > >>>>> unique: 0, error: 0 (Unknown error: 0), outsize: 40 > >>>>> unique: 0, opcode: STATFS (17), nodeid: 1, insize: 40 > >>>>> unique: 0, error: 0 (Unknown error: 0), outsize: 96 > >>>>> ACCESS / 00 > >>>>> unique: 1, error: -78 (Function not implemented), outsize: 16 > >>>>> unique: 2, opcode: GETATTR (3), nodeid: 1, insize: 40 > >>>>> unique: 2, error: 0 (Unknown error: 0), outsize: 128 > > >>>>> % ls mount > >>>>> ls: mount: Input/output error > > >>>> This was exactly the reason why I started looking into how to compile > >>>> MacFUSE. I almost forgot what I did to fix it :) > > >>>> When I compiled the examples myself (gcc -lfuse -o hello hello.c) it > >>>> didn't work, but when I compiled the examples using ./ > >>>> macfuse_buildtool.sh they worked! So I started looking what > >>>> commandline the shell script uses and found out that I had to add '- > >>>> mmacosx-version-min=10.5' to make it work. Don't ask my why that is, I > >>>> don't even know what -mmacosx-version-min does, but I hope it helps you. > > >>> I think I know this problem. > >>> You simply need to compile the example file systems with -lfuse_ino64 > >>> instead of -lfuse, since 64-bit inodes is now (as of Snow Leopard) the > >>> default in header files such as stat.h. (I.e. what was called struct > >>> stat64 in Leopard is now the same as struct stat...) > > >>> - Erik > > >> (Or you could pass -D__DARWIN_64_BIT_INO_T=0 to disable 64-bit inode > >> numbers in the headers. Then you can continue linking with -lfuse.) > > >> - Erik --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "MacFUSE" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/macfuse?hl=en -~----------~----~----~----~------~----~------~--~---
