-
Notifications
You must be signed in to change notification settings - Fork 72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compilation fails on Snow Leopard / MacPorts 2.1.3 / gcc 4.2.1 #6
Comments
That is correct, you can just comment out the "always inline" to compile (But I have not tried more than that). The Linux version does this to an attempt to save on stack-usage, on the functions that are called recursively. Linux has more restrictive stackusage than Solaris. I do not know where OSX lies in this, or if we will have issues with it in future |
We could remove it for all versions until we know if it will break, or use some autoconf checks like |
Temporarily fixed by commit 9fc59df. But we still need a proper automake/autoconf check for this. |
Which the stack like: frame #2: 0xffffff800292e4a5 kernel`cache_purge frame #3: 0xffffff7f83281ee8 zfs`zfs_vnop_reclaim + 152 frame #4: 0xffffff80029468f0 kernel`vclean frame #6: 0xffffff80029463cb kernel`vnode_reclaim_internal frame #9: 0xffffff800293f4b6 kernel`vnode_create frame #10: 0xffffff7f83283c41 zfs`zfs_znode_getvnode + 513 frame #11: 0xffffff7f83288d78 zfs`zfs_zget_internal + 984 frame #12: 0xffffff7f832764c9 zfs`zfs_vfs_vget + 329 frame #13: 0xffffff800293979d kernel`namei It would seem vnop_reclaim can not call into VFS again as it already holds locks, and verifying with hfs_vnop_reclaim, they do not call cache_purge().
Which the stack like: frame #2: 0xffffff800292e4a5 kernel`cache_purge frame #3: 0xffffff7f83281ee8 zfs`zfs_vnop_reclaim + 152 frame #4: 0xffffff80029468f0 kernel`vclean frame #6: 0xffffff80029463cb kernel`vnode_reclaim_internal frame #9: 0xffffff800293f4b6 kernel`vnode_create frame #10: 0xffffff7f83283c41 zfs`zfs_znode_getvnode + 513 frame #11: 0xffffff7f83288d78 zfs`zfs_zget_internal + 984 frame #12: 0xffffff7f832764c9 zfs`zfs_vfs_vget + 329 frame #13: 0xffffff800293979d kernel`namei It would seem vnop_reclaim can not call into VFS again as it already holds locks, and verifying with hfs_vnop_reclaim, they do not call cache_purge().
Which the stack like: frame #2: 0xffffff800292e4a5 kernel`cache_purge frame #3: 0xffffff7f83281ee8 zfs`zfs_vnop_reclaim + 152 frame #4: 0xffffff80029468f0 kernel`vclean frame #6: 0xffffff80029463cb kernel`vnode_reclaim_internal frame #9: 0xffffff800293f4b6 kernel`vnode_create frame #10: 0xffffff7f83283c41 zfs`zfs_znode_getvnode + 513 frame #11: 0xffffff7f83288d78 zfs`zfs_zget_internal + 984 frame #12: 0xffffff7f832764c9 zfs`zfs_vfs_vget + 329 frame #13: 0xffffff800293979d kernel`namei It would seem vnop_reclaim can not call into VFS again as it already holds locks, and verifying with hfs_vnop_reclaim, they do not call cache_purge().
Which the stack like: frame #2: 0xffffff800292e4a5 kernel`cache_purge frame #3: 0xffffff7f83281ee8 zfs`zfs_vnop_reclaim + 152 frame #4: 0xffffff80029468f0 kernel`vclean frame #6: 0xffffff80029463cb kernel`vnode_reclaim_internal frame #9: 0xffffff800293f4b6 kernel`vnode_create frame #10: 0xffffff7f83283c41 zfs`zfs_znode_getvnode + 513 frame #11: 0xffffff7f83288d78 zfs`zfs_zget_internal + 984 frame #12: 0xffffff7f832764c9 zfs`zfs_vfs_vget + 329 frame #13: 0xffffff800293979d kernel`namei It would seem vnop_reclaim can not call into VFS again as it already holds locks, and verifying with hfs_vnop_reclaim, they do not call cache_purge().
Compilation fails in dsl_scan.c and zio.c when trying to inline some function marked as "always inline":
A work-around is to remove the always inle qualifier, but the question is, if that is wise to do.
The text was updated successfully, but these errors were encountered: