Message ID | 20220813105152.1403602-1-thomas.petazzoni@bootlin.com |
---|---|
State | Accepted |
Headers | show |
Series | package/binutils: handle gprofng as an optional feature | expand |
Thomas, All, On 2022-08-13 12:51 +0200, Thomas Petazzoni via buildroot spake thusly: > 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 I was wondering if we should not just unconditionally build it. The overhead of building host-bison and its dependencies is probably very low when compared to the rest of the toolchain, especially with TLPB. But OK, option it is... > 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 [--SNIP--] > @@ -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 $ make check-package package/binutils/binutils.mk:97: possible typo: HOST_INBUTILS_CONF_OPTS -> *BINUTILS* package/binutils/binutils.mk:99: possible typo: HOST_INBUTILS_CONF_OPTS -> *BINUTILS* Untested code? ;-) Applied to next, with the above fixed, thanks. Regards, Yann E. MORIN. > +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) > -- > 2.37.1 > > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot
Hello, On Sat, 13 Aug 2022 23:43:16 +0200 "Yann E. MORIN" <yann.morin.1998@free.fr> wrote: > > - Adds a new option BR2_BINUTILS_GPROFNG, which allows to > > enable/disable gprofng in host-binutils > > I was wondering if we should not just unconditionally build it. The > overhead of building host-bison and its dependencies is probably very > low when compared to the rest of the toolchain, especially with TLPB. > > But OK, option it is... Yes, I agree this question is relevant. > > 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 > [--SNIP--] > > @@ -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 > > $ make check-package > package/binutils/binutils.mk:97: possible typo: HOST_INBUTILS_CONF_OPTS -> *BINUTILS* > package/binutils/binutils.mk:99: possible typo: HOST_INBUTILS_CONF_OPTS -> *BINUTILS* > > Untested code? ;-) Meh, weird, I definitely tested it: I got a build failure before, and not after. Strange. Anyway, thanks for fixing and applying! Thomas
On 2022-08-13 23:46 +0200, Thomas Petazzoni spake thusly: > On Sat, 13 Aug 2022 23:43:16 +0200 > "Yann E. MORIN" <yann.morin.1998@free.fr> wrote: > > $ make check-package > > package/binutils/binutils.mk:97: possible typo: HOST_INBUTILS_CONF_OPTS -> *BINUTILS* > > package/binutils/binutils.mk:99: possible typo: HOST_INBUTILS_CONF_OPTS -> *BINUTILS* > Meh, weird, I definitely tested it: I got a build failure before, and > not after. Strange. Anyway, thanks for fixing and applying! Gah, I totally forgot to amend the commit before pushing. Grrr.... Fixed and pushed, now... Damn, this heat-wave really had a toll on me... ;-] Regards, Yann E. MORIN.
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)
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 <thomas.petazzoni@bootlin.com> --- package/binutils/Config.in.host | 6 ++++++ package/binutils/binutils.mk | 8 ++++++++ 2 files changed, 14 insertions(+)