From 1765b0231029c0479ddcf5d54e8f4882c5feda94 Mon Sep 17 00:00:00 2001 From: Rasmus Villemoes Date: Wed, 27 Jun 2018 12:04:25 +0200 Subject: [PATCH] add support for --disable-gcov For some targets (in my case VxWorks 5.5), libgcov does not compile due to missing functions and macros such as getpid() and F_OK. Incidentally, gcc/Makefile.in already contains comments such as # Install gcov if it was compiled. but there is no logic in place to actually allow gcov to not be compiled. So add an option for disabling build and install of libgcov and the related host tools. From-SVN: r262180 --- gcc/ChangeLog | 7 +++++++ gcc/Makefile.in | 6 ++++-- gcc/configure | 16 ++++++++++++++-- gcc/configure.ac | 5 +++++ gcc/doc/install.texi | 4 ++++ libgcc/ChangeLog | 6 ++++++ libgcc/Makefile.in | 8 +++++++- libgcc/configure | 12 ++++++++++++ libgcc/configure.ac | 5 +++++ 9 files changed, 64 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 34a0e250748..3604fd87e87 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2018-06-27 Rasmus Villemoes + + * configure.ac: Add --disable-gcov option. + * configure: Regenerate. + * Makefile.in: Honour @enable_gcov@. + * doc/install.texi: Document --disable-gcov. + 2018-06-27 Kyrylo Tkachov * config/arm/arm-cpus.in (cortex-a76): New entry. diff --git a/gcc/Makefile.in b/gcc/Makefile.in index d8f3e886118..1f38cacde7a 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -137,8 +137,10 @@ SUBDIRS =@subdirs@ build # Selection of languages to be made. CONFIG_LANGUAGES = @all_selected_languages@ -LANGUAGES = c gcov$(exeext) gcov-dump$(exeext) gcov-tool$(exeext) \ - $(CONFIG_LANGUAGES) +LANGUAGES = c $(CONFIG_LANGUAGES) +ifeq (@enable_gcov@,yes) +LANGUAGES += gcov$(exeext) gcov-dump$(exeext) gcov-tool$(exeext) +endif # Default values for variables overridden in Makefile fragments. # CFLAGS is for the user to override to, e.g., do a cross build with -O2. diff --git a/gcc/configure b/gcc/configure index 60d373982fd..bfef4be3782 100755 --- a/gcc/configure +++ b/gcc/configure @@ -779,6 +779,7 @@ REPORT_BUGS_TEXI REPORT_BUGS_TO PKGVERSION CONFIGURE_SPECS +enable_gcov enable_shared enable_fixed_point enable_decimal_float @@ -914,6 +915,7 @@ enable_vtable_verify enable_objc_gc with_dwarf2 enable_shared +enable_gcov with_specs with_pkgversion with_bugurl @@ -1634,6 +1636,7 @@ Optional Features: --enable-objc-gc enable the use of Boehm's garbage collector with the GNU Objective-C runtime --disable-shared don't provide a shared libgcc + --disable-gcov don't provide libgcov and related host tools --enable-languages=LIST specify which front-ends to build --disable-rpath do not hardcode runtime library paths --enable-sjlj-exceptions @@ -7628,6 +7631,15 @@ fi +# Check whether --enable-gcov was given. +if test "${enable_gcov+set}" = set; then : + enableval=$enable_gcov; +else + enable_gcov=yes +fi + + + # Check whether --with-specs was given. if test "${with_specs+set}" = set; then : @@ -18448,7 +18460,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 18451 "configure" +#line 18463 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -18554,7 +18566,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 18557 "configure" +#line 18569 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/gcc/configure.ac b/gcc/configure.ac index 010ecd2ccf6..4fc851c644e 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -921,6 +921,11 @@ AC_ARG_ENABLE(shared, ], [enable_shared=yes]) AC_SUBST(enable_shared) +AC_ARG_ENABLE(gcov, +[ --disable-gcov don't provide libgcov and related host tools], +[], [enable_gcov=yes]) +AC_SUBST(enable_gcov) + AC_ARG_WITH(specs, [AS_HELP_STRING([--with-specs=SPECS], [add SPECS to driver command-line processing])], diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index 7c5cdc762d3..03eaeed4e87 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -1044,6 +1044,10 @@ virtual calls in verifiable mode at all. However the libvtv library will still be built (see @option{--disable-libvtv} to turn off building libvtv). @option{--disable-vtable-verify} is the default. +@item --disable-gcov +Specify that the run-time library used for coverage analysis +and associated host tools should not be built. + @item --disable-multilib Specify that multiple target libraries to support different target variants, calling diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 356721ba866..cef65b5321e 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,9 @@ +2018-06-27 Rasmus Villemoes + + * configure.ac: Add --disable-gcov option. + * configure: Regenerate. + * Makefile.in: Honour @enable_gcov@. + 2018-06-21 Christophe Lyon * config/arm/lib1funcs.S (__ARM_ARCH__): Remove definitions, use diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in index dd8cee99fd3..b7f20557214 100644 --- a/libgcc/Makefile.in +++ b/libgcc/Makefile.in @@ -36,6 +36,7 @@ SHELL = @SHELL@ cpu_type = @cpu_type@ enable_shared = @enable_shared@ +enable_gcov = @enable_gcov@ 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_gcov),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 b/libgcc/configure index b2f3f870844..79068536175 100644 --- a/libgcc/configure +++ b/libgcc/configure @@ -620,6 +620,7 @@ build_cpu build with_aix_soname enable_vtable_verify +enable_gcov enable_shared libgcc_topdir target_alias @@ -667,6 +668,7 @@ with_target_subdir with_cross_host with_ld enable_shared +enable_gcov enable_vtable_verify with_aix_soname enable_version_specific_runtime_libs @@ -1306,6 +1308,7 @@ Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-shared don't provide a shared libgcc + --disable-gcov don't provide libgcov and related host tools --enable-vtable-verify Enable vtable verification feature --enable-version-specific-runtime-libs Specify that runtime libraries should be installed in a compiler-specific directory --enable-maintainer-mode @@ -2199,6 +2202,15 @@ fi +# Check whether --enable-gcov was given. +if test "${enable_gcov+set}" = set; then : + enableval=$enable_gcov; +else + enable_gcov=yes +fi + + + # Check whether --enable-vtable-verify was given. if test "${enable_vtable_verify+set}" = set; then : enableval=$enable_vtable_verify; case "$enableval" in diff --git a/libgcc/configure.ac b/libgcc/configure.ac index b59aa746afc..9d0bbcaba86 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(gcov, +[ --disable-gcov don't provide libgcov and related host tools], +[], [enable_gcov=yes]) +AC_SUBST(enable_gcov) + AC_ARG_ENABLE(vtable-verify, [ --enable-vtable-verify Enable vtable verification feature ], [case "$enableval" in