On Fri, 18 Nov 2011, Jochen Schröder wrote:
On 13/11/11 22:10, Vincent Torri wrote:
On Sun, 13 Nov 2011, Jochen Schröder wrote:
On 13/11/11 20:14, Vincent Torri wrote:
On Sun, 13 Nov 2011, Jochen Schröder wrote:
On 13/11/11 18:39, Vincent Torri wrote:
On Sun, 13 Nov 2011, Jochen Schröder wrote:
On 12/11/11 22:43, Vincent Torri wrote:
Hey,
On Sat, 12 Nov 2011, Vincent Torri wrote:
Hi all,
I was trying to dig deeper into a problem where I get a
corruption in
e_fm when mounting and removing a usb disk (see
here:http://marc.info/?l=enlightenment-devel&m=132014458110340&w=2
for
details). I found a couple of problems when trying to build e with
different e_fm options.
1. when efl is installed in /opt/ for example eeze_mount is always
disabled because the configure test fails because of a missing
-L/opt/e17 in the compile.
i don't have libmount, so I can't test it. Can you paste
config.log of
eeze, please ?
Sorry I didn't make myself clear, this is compiling E, not eeze. Eeze
compiled fine with libmount support. However when I compile E and do
configure it fails the check, the relevant lines of E's config.log
are
below
configure:15678: checking for eeze_disk_function in -leeze
configure:15703: gcc -std=gnu99 -o conftest -g -O2 conftest.c -leeze
-lpam >&5
/usr/bin/ld: cannot find -leeze
that is strange: the eeze.pc file should have -L/opt/e17/lib -leeze in
the Libs entry.
One possible reason to not have -L***: you have previously installed
eeze in /usr, removed the files manually except
/usr/lib/pkgconfig/eeze.pc. Then installed eeze in /opt/e17, without
updating PKG_CONFIG_PATH. So it's the eeze.pc in /usr/lib/pkgconfig
which is used.
So verify first that there is not an eeze.pc file somewhere else
Vincent
eeze.pc is fine, and eeze gets detected by pkgconfig and the
-L{library_path} is present. The problem is to enable eeze mounting
there is a check in configure.ac to test the presence of
eeze_disk_function using AC_CHECK_LIB (see line 397-411 in
configure.ac). The way I understand from just reading up on autoconf.
AC_CHECK_LIB only uses the default library paths, and there is nothing
to include the additional paths in the test and unfortunately I don't
know how to put them there either.
in e_fm/Makefile.am:
if HAVE_EEZE_MOUNT
AM_CFLAGS += @EET_CFLAGS@
LIBS += @EET_LIBS@
here, there is maybe a missing libs. Try
AM_CFLAGS += @EEZE_CFLAGS@ @EET_CFLAGS@
LIBS += @EEZE_LIBS@ @EET_LIBS@
It's not my code. Honestly, i would have not done that that way. Mike
should look at that patch first before I commit (if it works)
Vincent
Thanks for taking time to debug this. I think you misunderstand me
though. The problem is not building e_fm it is configuring E to build
with eeze mount. Eeze is installed in /opt/e17/lib linked to to
libmount. Now if I run autogen.sh in e's src directory e_mount support
is never enabled. The reason is that the configure test fails with
/usr/bin/ld: cannot find -leeze.
The offending code from e/configure.ac is (line 397-414):
eeze_mount=
EEZE_MOUNT_CONFIG=0
if test "x$e_cv_want_mount_eeze" != "xno" ; then
AC_CHECK_LIB([eeze], [eeze_disk_function],
[
eeze_mount="eeze >= 1.0.999 ecore-con >= 1.0.999"
EEZE_MOUNT_CONFIG=1
AC_DEFINE_UNQUOTED([HAVE_EEZE_MOUNT], [1], [enable eeze
mounting])
AC_MSG_NOTICE([eeze mounting enabled])
],
[
AC_MSG_NOTICE([eeze mounting disabled])
e_cv_want_mount_eeze=no
]
)
else
AC_MSG_NOTICE([eeze mounting disabled])
fi
(note that the presence of eeze + flags, has been determined earlier via
pkgconfig tests).
As I understand this and the autoconf documentation, this is a bit of a
hack to see if libeeze was compiled with mount support by checking if
libeeze contains the eeze_disk_function. The problem seems to be that
AC_CHECK_LIB only uses the standard library path, so if eeze is
installed in /opt/ the test always fails.
according to the autoconf manual, about AC_CHECK_LIB:
the default action prepends -llibrary to LIBS and defines
'HAVE_LIBlibrary' (in all capitals)
Which means that one add to LIBS the flag -leeze. That's all. No -Lfoo.
That's a mistake. Hence there is a bug in the above Makefile.am.
Now, about the configure check, there is indeed something missing:
CPPFLAGS_save="$CPPFLAGS"
LIBS_save="$LIBS"
CPPFLAGS="$EEZE_CFLAGS $CPPFLAGS"
LIBS="$EEZE_LIBS $LIBS"
AC_CHECK_LIB([eeze], [eeze_disk_function], ***)
CPPFLAGS="$CPPFLAGS_save"
LIBS="$LIBS_save"
Vincent
Sorry for replying late, didn't really have time to check this. Putting
this into configure.ac fixes the EEZE mount detection.
shoud be fixed in svn, tell me if there are still problems
Vincent
------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure
contains a definitive record of customers, application performance,
security threats, fraudulent activity, and more. Splunk takes this
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel