When trying to build gcc 6.4.0 targeting VxWorks 5.5, I ran into libgcov not building against the VxWorks system headers - there are multiple issues such as
gcc-src/libgcc/../gcc/gcov-io.c:78:3: warning: implicit declaration of function 'getpid' [-Wimplicit-function-declaration] s_flock.l_pid = getpid (); ^ gcc-src/libgcc/libgcov.c:139:9: warning: implicit declaration of function 'access' [-Wimplicit-function-declaration] if (access (filename, F_OK) == -1 ^ gcc-src/libgcc/libgcov.c:139:31: error: 'F_OK' undeclared (first use in this function) if (access (filename, F_OK) == -1 ^ Moreover, from the gcov documentation, it would seem to be cumbersome at best to actually use it on VxWorks. So add an option for disabling build and install of libgcov. It would probably be most user-friendly if the resulting compiler would reject --coverage and -fprofile-arcs, but I couldn't find an easy way to do that. 2018-05-25 Rasmus Villemoes <rasmus.villem...@prevas.dk> libgcc/ * Makefile.in: Honour @enable_libgcov@ * configure.ac: Add --disable-libgcov option * configure: Regenerate. --- libgcc/Makefile.in | 8 +++++++- libgcc/configure.ac | 5 +++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in index dd8cee99fd3..22acc15e236 100644 --- a/libgcc/Makefile.in +++ b/libgcc/Makefile.in @@ -36,6 +36,7 @@ SHELL = @SHELL@ cpu_type = @cpu_type@ enable_shared = @enable_shared@ +enable_libgcov = @enable_libgcov@ double_type_size = @double_type_size@ long_double_type_size = @long_double_type_size@ decimal_float = @decimal_float@ @@ -941,7 +942,10 @@ libgcc.a libgcov.a libunwind.a libgcc_eh.a: $(RANLIB) $@ -all: libgcc.a libgcov.a +all: libgcc.a +ifeq ($(enable_libgcov),yes) +all: libgcov.a +endif ifneq ($(LIBUNWIND),) all: libunwind.a @@ -1164,9 +1168,11 @@ install-leaf: $(install-shared) $(install-libunwind) $(INSTALL_DATA) libgcc.a $(DESTDIR)$(inst_libdir)/ chmod 644 $(DESTDIR)$(inst_libdir)/libgcc.a $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc.a +ifeq ($(enable_libgcov),yes) $(INSTALL_DATA) libgcov.a $(DESTDIR)$(inst_libdir)/ chmod 644 $(DESTDIR)$(inst_libdir)/libgcov.a $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcov.a +endif parts="$(INSTALL_PARTS)"; \ for file in $$parts; do \ diff --git a/libgcc/configure.ac b/libgcc/configure.ac index b59aa746afc..a878c473f3d 100644 --- a/libgcc/configure.ac +++ b/libgcc/configure.ac @@ -68,6 +68,11 @@ AC_ARG_ENABLE(shared, ], [enable_shared=yes]) AC_SUBST(enable_shared) +AC_ARG_ENABLE(libgcov, +[ --disable-libgcov don't provide libgcov], +[], [enable_libgcov=yes]) +AC_SUBST(enable_libgcov) + AC_ARG_ENABLE(vtable-verify, [ --enable-vtable-verify Enable vtable verification feature ], [case "$enableval" in -- 2.15.1