From: Sergei Trofimovich <slyich@gmail.com>
To: Vladimir Mezentsev via Binutils <binutils@sourceware.org>
Subject: Re: [PATCH V3] gprofng: a new GNU profiler
Date: Sat, 21 May 2022 09:30:57 +0100 [thread overview]
Message-ID: <20220521093050.515a5ca5@nz> (raw)
In-Reply-To: <52ead579-44ab-4d05-67d6-4a09f7a1693d@oracle.com>
On Wed, 1 Sep 2021 11:45:01 -0700
Vladimir Mezentsev via Binutils <binutils@sourceware.org> wrote:
> Hi people!
>
>
> 09/01/2021: Changes from V2
> ===========================
>
> - Renamed experiment.h to gp-experiment.h (Hannes Domani reported
> problem on Windows).
> - Fixed regression in build on ARM.
> - Improved gprofng/testsuite.
>
>
> Where to get gprofng
> ====================
>
> Due to the size of the contribution, we thought it would be better to
> submit it in the form
> of a git branch, instead of a regular emailed patch series.
>
> Repository: https://www.github.com/oracle/binutils-gdb
> Branch: oracle/gprofng-v3
Hi Vladimir! [Months later] I noticed that gprofng is doing a bit of
indirection in format strings.
Many distributions (including NixOS) build projects with
CFLAGS/CXXFLAGS=-Werror=format-security
to avoid trivial format string vulnerabilities.
Today's binutils-gdb master fails to build under such a setup.
The rest of binutils is generally -Werror=format-security clean.
Do you think it's something gprofng could support or workaround?
Currently I see the following failures:
../../../gprofng/src/Print.cc: In function 'int print_one_visible(FILE*, char*, char*, char*, TValue*, int)':
../../../gprofng/src/Print.cc:547:35: error: format not a string literal and no format arguments [-Werror=format-security]
547 | nc = fprintf (out_file, fmt_real0);
| ^
../../../gprofng/src/Print.cc:574:35: error: format not a string literal and no format arguments [-Werror=format-security]
574 | nc = fprintf (out_file, fmt_real0);
| ^
../../../gprofng/src/Print.cc: In function 'int print_one_tvisible(FILE*, char*, char*, TValue*, int, int)':
../../../gprofng/src/Print.cc:596:38: error: format not a string literal and no format arguments [-Werror=format-security]
596 | nc = fprintf (out_file, fmt_real0);
| ^
../../../gprofng/src/Print.cc: In function 'void print_one(FILE*, Hist_data*, Hist_data::HistItem*, char**, char**, char**, MetricList*, Metric::HistMetric*, char*, Histable::NameFormat)':
../../../gprofng/src/Print.cc:692:31: error: format not a string literal and no format arguments [-Werror=format-security]
692 | nc += fprintf (out_file, stmp);
| ^~~~
../../../gprofng/src/Print.cc: In member function 'void er_print_histogram::dump_detail(int)':
../../../gprofng/src/Print.cc:1044:24: error: format not a string literal and no format arguments [-Werror=format-security]
1044 | fprintf (out_file, fmt_real1);
| ^~~~~~~~~
../../../gprofng/src/Print.cc:1051:24: error: format not a string literal and no format arguments [-Werror=format-security]
1051 | fprintf (out_file, fmt_int1);
| ^~~~~~~~
../../../gprofng/src/Print.cc:1062:23: error: format not a string literal and no format arguments [-Werror=format-security]
1062 | fprintf (out_file, fmt_real1);
| ^~~~~~~~~
../../../gprofng/src/Print.cc:1066:28: error: format not a string literal and no format arguments [-Werror=format-security]
1066 | fprintf (out_file, fmt_long1);
| ^~~~~~~~~
../../../gprofng/src/Print.cc:1105:24: error: format not a string literal and no format arguments [-Werror=format-security]
1105 | fprintf (out_file, fmt_real1);
| ^~~~~~~~~
../../../gprofng/src/Print.cc: In member function 'void er_print_experiment::overview_value(Value*, ValueTag, double)':
../../../gprofng/src/Print.cc:2616:26: error: format not a string literal and no format arguments [-Werror=format-security]
2616 | fprintf (out_file, fmt3);
| ^~~~
cc1plus: some warnings being treated as errors
make[5]: *** [Makefile:870: Print.lo] Error 1
depbase=`echo parse.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/nix/store/w61p7kw12h9ppxlfy5lsp2k32hcrwg4z-bash-5.1-p16/bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../../gprofng/src -I.. -U_ASM -DLOCALEDIR=\"/mnt/archive/big/git/binutils-gdb/outputs/out/share/locale\" -I.. -I../../../gprofng/src -I../../../gprofng/src/../common -I../../../gprofng/src/../../include -I../../../gprofng/src/../../opcodes -I../../bfd -I../../../gprofng/src/../../bfd -Wall -pthread -Wno-format-truncation -Wno-switch -g -O2 -MT parse.lo -MD -MP -MF $depbase.Tpo -c -o parse.lo ../../../gprofng/src/parse.cc &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../../gprofng/src -I.. -U_ASM -DLOCALEDIR=\"/mnt/archive/big/git/binutils-gdb/outputs/out/share/locale\" -I.. -I../../../gprofng/src -I../../../gprofng/src/../common -I../../../gprofng/src/../../include -I../../../gprofng/src/../../opcodes -I../../bfd -I../../../gprofng/src/../../bfd -Wall -pthread -Wno-format-truncation -Wno-switch -g -O2 -MT parse.lo -MD -MP -MF .deps/parse.Tpo -c ../../../gprofng/src/parse.cc -o parse.o
../../../gprofng/src/parse.cc: In member function 'virtual int Experiment::process_Linux_kernel_cmd(hrtime_t)':
../../../gprofng/src/parse.cc:909:40: error: format not a string literal and no format arguments [-Werror=format-security]
909 | sprintf (last_mod_name, mod_name_ptr);
| ^
Thanks!
--
Sergei
next prev parent reply other threads:[~2022-05-21 8:31 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <047143ae-be5e-9eec-237f-ad9ffe3795c0@oracle.com>
2021-09-01 18:45 ` Vladimir Mezentsev
2022-05-21 8:30 ` Sergei Trofimovich [this message]
2022-05-24 3:09 ` Vladimir Mezentsev
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220521093050.515a5ca5@nz \
--to=slyich@gmail.com \
--cc=binutils@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).