Hello,

Sorry for that this is not really related to Bison (but GCC or LCOV),
but perhaps a common question that anyone might know the solution.

In gettext we have the following directory structure:

  gettext-runtime/
    intl/
      Makefile
      plural.y
      plural.c # <-- generated from plural.y
      ...

  gettext-tools/
    intl/
      Makefile

In order for gettext-runtime and gettext-tools to be built separately,
gettext-tools/intl/Makefile refers to the source code in
gettext-runtime/intl/ instead of copying the object files.

So gettext-tools/intl/Makefile looks like:

  srcdir = ../../gettext-runtime/intl

  plural.lo: $(srcdir)/plural.c
          $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC --mode=compile \
            $(COMPILE) $(srcdir)/plural.c

This works for normal compilation.  However, when compiling with the
--coverage option of GCC, the generated .gcno file embeds relative file
name annotated with #line directive in plural.c.  That confuses LCOV:

  genhtml: ERROR: cannot read /tmp/...snip.../gettext-tools/intl/plural.c

http://hydra.nixos.org/build/17564911/log/tail-reload

Is there any easy way to tell GCC the correct source file location?  Or
should we copy all the source files?

Thanks in advance,
--
Daiki Ueno

_______________________________________________
help-bison@gnu.org https://lists.gnu.org/mailman/listinfo/help-bison

Reply via email to