Re: .gcno files removed from .libs directory
Hey, * Vincent Torri wrote on Fri, Aug 29, 2008 at 05:38:59PM CEST: I'm compiling two libraries with the options -fprofile-arcs -ftest-coverage passed to gcc. The first one has .gcno files in his directory and the .libs sub directory. The second one has .gcno files in his directory but not in the .libs subdir. I paste below the Makefile.am of eash lib: there is a difference in the creation of the libs. libtool explicitely removes the .gcno files in the 2nd case: libtool: link: rm -fr .libs/eina_chained_mempool.gcno Confirmed. The patch below should fix it. It still needs a test. I have tried the patch and it works well :) thank you Vincent ___ http://lists.gnu.org/mailman/listinfo/libtool
Re: .gcno files removed from .libs directory
Hello, * Vincent Torri wrote on Fri, Aug 29, 2008 at 05:38:59PM CEST: I'm compiling two libraries with the options -fprofile-arcs -ftest-coverage passed to gcc. The first one has .gcno files in his directory and the .libs sub directory. The second one has .gcno files in his directory but not in the .libs subdir. I paste below the Makefile.am of eash lib: there is a difference in the creation of the libs. libtool explicitely removes the .gcno files in the 2nd case: libtool: link: rm -fr .libs/eina_chained_mempool.gcno Confirmed. The patch below should fix it. It still needs a test. As a workaround, you could let none of your objects have the same name (minus extension) as your library. Cheers, Ralf Do not remove .gcno files when linking. * libltdl/config/ltmain.m4sh (func_mode_link): When removing potential output files before linking, do not remove *.gcno profile information GCC outputs next to object files in `.libs'. Report by Vincent Torri. diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh index 7e319c9..814cc93 100644 --- a/libltdl/config/ltmain.m4sh +++ b/libltdl/config/ltmain.m4sh @@ -5963,7 +5963,7 @@ func_mode_link () tempremovelist=`$ECHO $output_objdir/*` for p in $tempremovelist; do case $p in - *.$objext) + *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test X$precious_files_regex != X; then ___ http://lists.gnu.org/mailman/listinfo/libtool
Re: .gcno files removed from .libs directory
On Sun, 31 Aug 2008, Ralf Wildenhues wrote: Hello Vincent, Thanks for the bug report. * Vincent Torri wrote on Fri, Aug 29, 2008 at 05:38:59PM CEST: I'm compiling two libraries with the options -fprofile-arcs -ftest-coverage passed to gcc. The first one has .gcno files in his directory and the .libs sub directory. The second one has .gcno files in his directory but not in the .libs subdir. I paste below the Makefile.am of eash lib: [...] clean-local: @rm -rf *.gcno BTW, why the '@' here? There's nothing wrong with showing this command (but of course it doesn't matter much either). I agree, it even be usefull to see such commands there is a difference in the creation of the libs. libtool explicitely removes the .gcno files in the 2nd case: libtool: link: rm -fr .libs/eina_chained_mempool.gcno does someone know why libtool remove the .gcno files. Not yet, but it does sound like a bug (in either Libtool or Autoconf). You could really help us find this bug more easily by trying to reduce this to a small example package that exposes the issue for you, and show how exactly you configured and built the package. The files configure.ac, Makefile.am, and one library source file, should probably be sufficient. If that's too much work for you, then please at least post how you configured and built the second package (all command lines plus all of their output), and also post config.log. Please gzip large files, thank you. for the source code: see the attached file autotools.tar.bz2 for the configuration: autoreconf -f -i ./configure make for the output : output.log.bz2 for config.log : config.log.bz2 BTW, which Libtool and Autoconf versions do you use? autoconf 2.62 libtool 2.2.5a for libtool, it's a git version that I have grabbed just after cegcc was added. thanks Vincent Torri PS: if you note things that are wrong in configure.ac, please don't hesitate to tell me. output.log.bz2 Description: Binary data config.log.bz2 Description: Binary data autotools.tar.bz2 Description: Binary data ___ http://lists.gnu.org/mailman/listinfo/libtool
Re: .gcno files removed from .libs directory
Hello Vincent, Thanks for the bug report. * Vincent Torri wrote on Fri, Aug 29, 2008 at 05:38:59PM CEST: I'm compiling two libraries with the options -fprofile-arcs -ftest-coverage passed to gcc. The first one has .gcno files in his directory and the .libs sub directory. The second one has .gcno files in his directory but not in the .libs subdir. I paste below the Makefile.am of eash lib: [...] clean-local: @rm -rf *.gcno BTW, why the '@' here? There's nothing wrong with showing this command (but of course it doesn't matter much either). there is a difference in the creation of the libs. libtool explicitely removes the .gcno files in the 2nd case: libtool: link: rm -fr .libs/eina_chained_mempool.gcno does someone know why libtool remove the .gcno files. Not yet, but it does sound like a bug (in either Libtool or Autoconf). You could really help us find this bug more easily by trying to reduce this to a small example package that exposes the issue for you, and show how exactly you configured and built the package. The files configure.ac, Makefile.am, and one library source file, should probably be sufficient. If that's too much work for you, then please at least post how you configured and built the second package (all command lines plus all of their output), and also post config.log. Please gzip large files, thank you. BTW, which Libtool and Autoconf versions do you use? Cheers, Ralf ___ http://lists.gnu.org/mailman/listinfo/libtool
Re: .gcno files removed from .libs directory
A small note: * Vincent Torri wrote on Fri, Aug 29, 2008 at 05:38:59PM CEST: libeina_la_DEPENDENCIES = $(top_builddir)/config.h There should be no need for this line. Typically, a library only depends upon object files and other libraries. It's some of the object files that themselves depend upon header files. Those dependencies, however, should be computed by the automatic dependency tracking mechanism which Automake puts in place. Cheers, Ralf ___ http://lists.gnu.org/mailman/listinfo/libtool
.gcno files removed from .libs directory
Hey I'm compiling two libraries with the options -fprofile-arcs -ftest-coverage passed to gcc. The first one has .gcno files in his directory and the .libs sub directory. The second one has .gcno files in his directory but not in the .libs subdir. I paste below the Makefile.am of eash lib: * First lib (which works) MAINTAINERCLEANFILES = Makefile.in AM_CPPFLAGS = \ -I$(top_srcdir)/src/include \ -DPACKAGE_BIN_DIR=\$(bindir)\ \ -DPACKAGE_LIB_DIR=\$(libdir)\ \ -DPACKAGE_DATA_DIR=\$(datadir)/$(PACKAGE)\ \ @COVERAGE_CFLAGS@ lib_LTLIBRARIES = libeina.la libeina_la_SOURCES = \ eina_error.c \ eina_hash.c \ eina_lalloc.c \ eina_inlist.c \ eina_file.c \ eina_mempool.c \ eina_list.c \ eina_module.c \ eina_value.c \ eina_array.c \ eina_magic.c \ eina_main.c \ eina_counter.c \ eina_iterator.c \ eina_accessor.c \ eina_convert.c \ eina_rbtree.c \ eina_stringshare.c libeina_la_LIBADD = -ldl -lrt @COVERAGE_LIBS@ -lm libeina_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ libeina_la_DEPENDENCIES = $(top_builddir)/config.h clean-local: @rm -rf *.gcno * Second lib (which does not work): MAINTAINERCLEANFILES = Makefile.in AM_CPPFLAGS = \ -I. \ -I$(top_srcdir)/src/include \ @COVERAGE_CFLAGS@ controllerdir = $(libdir)/eina/chained_pool/ controller_LTLIBRARIES = eina_chained_mempool.la eina_chained_mempool_la_SOURCES = \ eina_chained_mempool.c eina_chained_mempool_la_LIBADD = $(top_builddir)/src/lib/libeina.la @COVERAGE_LIBS@ eina_chained_mempool_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version eina_chained_mempool_la_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la clean-local: @rm -rf *.gcno there is a difference in the creation of the libs. libtool explicitely removes the .gcno files in the 2nd case: libtool: link: rm -fr .libs/eina_chained_mempool.gcno does someone know why libtool remove the .gcno files. And of course, does someone know a way to keep those files ? thank you Vincent Torri ___ http://lists.gnu.org/mailman/listinfo/libtool