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

Reply via email to