From 7ff21f8d4b94e859ce95aa24ad361f2c5df9e284 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 13 Aug 2022 12:51:51 +0200 Subject: [PATCH] package/binutils: handle gprofng as an optional feature binutils 2.39 added support for gprofng, a new profiler (see https://www.phoronix.com/news/GNU-Profiler-gprofng). This new profiler is enabled by default, but it requires bison on the host. In order to handle this, this commit: - Adds a new option BR2_BINUTILS_GPROFNG, which allows to enable/disable gprofng in host-binutils - Unconditionnally disables gprofng for the target binutils, based on the idea that in a Buildroot context the analysis of profiling data is generally done on the host system. This can of course always be revisited later by adding a new option to the target binutils package. Signed-off-by: Thomas Petazzoni Signed-off-by: Yann E. MORIN --- package/binutils/Config.in.host | 6 ++++++ package/binutils/binutils.mk | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host index 907b63de13..51802db043 100644 --- a/package/binutils/Config.in.host +++ b/package/binutils/Config.in.host @@ -34,6 +34,12 @@ config BR2_BINUTILS_VERSION default "2.38" if BR2_BINUTILS_VERSION_2_38_X default "2.39" if BR2_BINUTILS_VERSION_2_39_X +config BR2_BINUTILS_GPROFNG + bool "gprofng support" + depends on BR2_BINUTILS_VERSION_2_39_X + help + This option enables support for gprofng, a new profiler. + config BR2_BINUTILS_EXTRA_CONFIG_OPTIONS string "Additional binutils options" default "" diff --git a/package/binutils/binutils.mk b/package/binutils/binutils.mk index a3fece27dc..e4cb19896d 100644 --- a/package/binutils/binutils.mk +++ b/package/binutils/binutils.mk @@ -52,6 +52,7 @@ BINUTILS_CONF_OPTS = \ --enable-install-libiberty \ --enable-build-warnings=no \ --with-system-zlib \ + --disable-gprofng \ $(BINUTILS_DISABLE_GDB_CONF_OPTS) \ $(BINUTILS_EXTRA_CONFIG_OPTIONS) @@ -91,6 +92,13 @@ HOST_BINUTILS_CONF_OPTS = \ $(BINUTILS_DISABLE_GDB_CONF_OPTS) \ $(BINUTILS_EXTRA_CONFIG_OPTIONS) +ifeq ($(BR2_BINUTILS_GPROFNG),y) +HOST_BINUTILS_DEPENDENCIES += host-bison +HOST_INBUTILS_CONF_OPTS += --enable-gprofng +else +HOST_INBUTILS_CONF_OPTS += --disable-gprofng +endif + # binutils run configure script of subdirs at make time, so ensure # our TARGET_CONFIGURE_ARGS are taken into consideration for those BINUTILS_MAKE_ENV = $(TARGET_CONFIGURE_ARGS)