Hi,

On Tue, 27 Nov 2007, Szabolcs Szakacsits wrote:
> On Tue, 27 Nov 2007, Miklos Szeredi wrote:
> 
> > > I've done this now and integrated it into ntfs-3g. Everything seems to 
> > > work 
> > > fine so far. Uclibc wasn't tested yet. I was a bit off with the one kB 
> > > saving estimate. So far it's almost 20 kB (20% of libfuse). More later.
> > 
> > Dynamic linking does have a lot of overhead.  
> 
> Yes, both size and performance. The ntfs-3g library can be linked in both 
> ways already (a third one is linking everything statically). The plan is 
> the same for fuse-lite, static linking by default. It saves another 20 kB.

The above is a reality now, big thanks to Alon Bar-Lev for rewriting the 
ntfs-3g build system the way it was exactly dreamt about :->

Removing compatibility and modules/stacking saved about 30 kB shared libray 
binary size and 50 kB when statically linked (50%). The ntfs-3g package 
size with fuse-lite integrated increased by only 11% but the overall binary 
size decreased by 15% during static linking.

The fuse-lite library always linked into libntfs-3g when it's used. Linux 
uses this by default. The --with-fuse=external configure option makes 
ntfs-3g to be compiled with the external FUSE library. For FreeBSD, OS X 
and NetBSD this is the default and the only option currently.

Compilation modes:

 configure:                        fuse-lite linked into shared libntfs-3g
 configure --disable-library:      fuse-lite & libntfs-3g linked into ntfs-3g
 configure --enable-really-static: fully static ntfs-3g with fuse-lite

 configure --with-fuse=external:                        previous way
 configure --with-fuse=external --disable-library:      libntfs-3g linked 
                                                        into ntfs-3g
 configure --with-fuse=external --enable-really-static: fully static ntfs-3g 
                                                        with external fuse

All the tests were positive so far on Linux using x86, ARM, MIPS CPUs. 
Any feedback from FreeBSD, OS X and NetBSD would be very welcome since 
we couldn't test those.

The new build system should be fully backwards compatible, minus the 
default fuse-lite use on Linux and 'make install-strip' should be used
instead of 'make strip && make intstall'.

If one is interested in fuse-lite then it can be found at

        http://sourceforge.net/cvs/?group_id=181143
        http://mercurial.creo.hu/repos/ntfs-3g-hg/

in the directories include/fuse-lite and libfuse-lite. An ntfs-3g BETA 
package is also online for testing:

        http://ntfs-3g.org/ntfs-3g-1.1206-BETA.tgz

Worked on problem: fusermount utility is not integrated yet as part of the 
fuse-lite library, so the official FUSE package is required for non-root 
mounts.

Feedbacks are welcome, especially negative ones.

Thanks,
           Szaka

--
NTFS-3G:  http://ntfs-3g.org

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
ntfs-3g-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ntfs-3g-devel

Reply via email to