Hi, On Fri, 8 Aug 2008, Andras Barna wrote:
> am cc'ing desktopdiscuss, since we are talking now about autotools Thanks. > i applied the patch, seems ok and also i must add AM_PROG_LIBTOOL to > configure.ac coz: [0] Well, you shouldn't add it because it already should be there when needed. The problem is with this recent patch: http://mercurial.creo.hu/repos/ntfs-3g-hg/index.cgi/diff/a05ab13955c8/configure.ac > a minor error: ./configure: line 19337: LT_INIT: command not found > > i have no idea about the other problems. sorry > > [0] > libfuse-lite/Makefile.am:5: Libtool library used but `LIBTOOL' is undefined > libfuse-lite/Makefile.am:5: The usual way to define `LIBTOOL' is to > add `AC_PROG_LIBTOOL' > libfuse-lite/Makefile.am:5: to `configure.ac' and run `aclocal' and > `autoconf' again. > libfuse-lite/Makefile.am:5: If `AC_PROG_LIBTOOL' is in > `configure.ac', make sure > libfuse-lite/Makefile.am:5: its definition is in aclocal's search path. > libntfs-3g/Makefile.am:6: Libtool library used but `LIBTOOL' is undefined > libntfs-3g/Makefile.am:6: The usual way to define `LIBTOOL' is to > add `AC_PROG_LIBTOOL' > libntfs-3g/Makefile.am:6: to `configure.ac' and run `aclocal' and > `autoconf' again. > libntfs-3g/Makefile.am:6: If `AC_PROG_LIBTOOL' is in `configure.ac', make > sure > libntfs-3g/Makefile.am:6: its definition is in aclocal's search path. Apparently your autoconf doesn't like the 'ifdef' construct in configure.ac What's the version (autoconf --version)? Minimum 2.59 is needed (enforced by configure.ac) and 2.61 is known to be ok (at least on Linux). About the "rm: cannot remove directory `foo': Directory not empty" problem. Is it always reproducible? I grepped the Solaris rm(1) code and it doesn't deal with ENOTEMPTY/EEXIST (no need for it). So the problem was (is?) something else. The ntfs-3g driver can also return ENOTEMPTY if a removed file/directory has an open file descriptor and its parent directory tried to be removed (this is a fuse high-level api issue). Three potential explanations: 1. rm "leaks" file descriptors during recursive removal. But it doesn't look like to be so by a quick look at the code. A tracing could confirm this pretty fast. 2. a child and removed file/directory was still in use (opened by at least one process). Then the error message is the expected one. 3. a Solaris fuse issue. Regards, Szaka -- NTFS-3G: http://ntfs-3g.org > On Fri, Aug 8, 2008 at 12:48 AM, Szabolcs Szakacsits <szaka at ntfs-3g.org> > wrote: > > > > Hi, > > > > On Tue, 5 Aug 2008, Andras Barna wrote: > > > >> i'm on opensolaris 94 > >> i just want to confirm that it works with gcc, but with sunstudioexpress. > >> i attach a log > > > > Thank you very much. > > > > It seems the only major problem is the lack of anonymous struct/union > > support in the Sun Studio compiler. > > > > Is it possible somehow to detect the Sun Studio compler in configure.ac? > > Then users could be advised to install gcc. > > > > Another improvement could be this patch > > > > ------------------------------------------------> > > diff -u -r1.78 configure.ac > > --- configure.ac 17 Jul 2008 15:04:23 -0000 1.78 > > +++ configure.ac 7 Aug 2008 20:53:57 -0000 > > @@ -117,7 +117,7 @@ > > AC_GNU_SOURCE > > > > # Programs > > -AC_PROG_CC > > +AC_PROG_CC(gcc cc) > > AC_PROG_LN_S > > AM_PROG_CC_C_O > > > > <------------------------------------------------ > > > > which in theory would always prefer and use the gcc compiler over Sun > > Studio if both are installed. This way there would be no need to manually > > set CC before compilation. > > > > Could somebody test the patch please? > > > > unset CC > > ./autogen.sh > > ./configure > > make > > > > The anonymous struct/union issue is keep being solved by developers using > > old gcc and other compilers (it can be done in a few hours) but a solution > > can be applied to upstream ntfs-3g only if it's completely non-intrusive to > > all existing users. > > > > Two good solutions are > > > > 1. Detect compiler anonymous struct/union ability, set a macro accordingly, > > use it to conditionally (and smartly) define structs/unions and convert > > all relevant, direct struc/union member accesses to use get and set > > helper functions/macros. > > > > 2. Eliminate anonymous struct/union usage and demonstrate that the > > generated machine codes are equivalent on the byte level. I very much > > doubt this would be true. > > > > Andras, I've seen your problem on HUP, namely something like this: > > > > mkdir -p foo/bar/baz > > rm -rf foo > > rm: cannot remove directory `foo': Directory not empty > > > > Apparently Solaris's rm(8) checks only for EEXIST. ENOTEMPTY is also valid > > in the above case according to POSIX. In the past ntfs-3g's rmdir(2) > > returned EEXIST but it was changed to ENOTEMPTY because most (Linux) > > programs expect ENOTEMPTY. > > > > If somebody could confirm the above then we would change the driver to use > > EEXIST instead of ENOTEMPTY on Solaris. > > > > Thanks, > > Szaka > > > > -- > > NTFS-3G: http://ntfs-3g.org > > > > > >> On Tue, Aug 5, 2008 at 8:29 PM, Szabolcs Szakacsits <szaka at ntfs-3g.org> > >> wrote: > >> > > >> > On Tue, 5 Aug 2008, Mark Phalan wrote: > >> >> On Tue, 2008-08-05 at 15:02 +0200, Mark Phalan wrote: > >> >> > On Mon, 2008-07-21 at 12:33 +0300, Szabolcs Szakacsits wrote: > >> >> > > On Thu, 17 Jul 2008, Szabolcs Szakacsits wrote: > >> >> > > > > >> >> > > > Could somebody please quickly try whether the below package, > >> >> > > > integrating > >> >> > > > all the ideas we discussed here, compiles now on Solaris without > >> >> > > > any > >> >> > > > patching and if not then what's the problem? > >> >> > > > > >> >> > > > http://ntfs-3g.org/ntfs-3g-1.2717.tgz > >> >> > > > > >> >> > > > The usual './configure && make && make install' should work but > >> >> > > > 'CFLAGS=-D__SOLARIS__ ./configure && ...' may be needed for FUSE. > >> >> > > > >> >> > > Any success or failure? > >> >> > > >> >> > I just compiled ntfs-3g-1.2717 on the latest version of > >> >> > Nevada/Solaris. > >> >> > It compiled without any problems! > >> >> > > >> >> > I haven't tested it yet though. > >> >> > >> >> Just tested it now with a Windows XP install. Reading and writing seem > >> >> to work! > >> > > >> > Thanks for testing. > >> > > >> >> Thanks for making the necessary changes to ntfs-3g :) > >> >> > >> >> One thing to note is that ntfs-3g doesn't compile well with the Sun > >> >> Studio compiler gcc must be used. In the future I'd like to be able to > >> >> compile it with Sun Studio too. I'll take a look and see what needs to > >> >> be changed. > >> > > >> > I think the below patch is needed. Maybe something else too? > >> > > >> > ----------------------------------------------------------------------> > >> > --- configure.ac 17 Jul 2008 15:04:23 -0000 1.78 > >> > +++ configure.ac 5 Aug 2008 17:22:12 -0000 > >> > @@ -277,8 +277,10 @@ > >> > ]) > >> > AC_SYS_LARGEFILE > >> > > >> > -# We add -Wall to enable some compiler warnings. > >> > -CFLAGS="${CFLAGS} -Wall" > >> > +if test "$GCC" = "yes" ; then > >> > + # We add -Wall to enable some compiler warnings. > >> > + CFLAGS="${CFLAGS} -Wall" > >> > +fi > >> > > >> > if test "${enable_pedantic}" = "yes"; then > >> > enable_warnings="yes" > >> > <--------------------------------------------------------------------- > >> > > >> > Thanks again, > >> > Szaka > >> > > >> > -- > >> > NTFS-3G: http://ntfs-3g.org > >> > > >> > _______________________________________________ > >> > fuse-discuss mailing list > >> > fuse-discuss at opensolaris.org > >> > http://mail.opensolaris.org/mailman/listinfo/fuse-discuss > >> > >> -- > >> Andy > >> http://blog.sartek.net > > -- > Andy > http://blog.sartek.net
