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
-~----------~----~----~----~------~----~------~--~---

Reply via email to