timbunce / devel-nytprof

Devel::NYTProf is a powerful feature-rich source code profiler for Perl. (Mostly in maintenance mode, so PRs are much more likely to be acted upon than Issues.)
http://blog.timbunce.org/tag/nytprof/
67 stars 50 forks source link

Build-time warnings on quadmath builds #188

Open jkeenan opened 3 years ago

jkeenan commented 3 years ago

When building Devel-NYTProf on quadmath builds on Linux, build-time warnings are generated. Excerpt:

# config_args: -Dusethreads -Dusequadmath

$ quadperl Makefile.PL
Looking for header files and functions...
Found clock_gettime in time.h
Found deflateInit2 in zlib.h
Assertion testing enabled
Your perl was compiled with gcc (version 9.3.0), okay.
Generating a Unix-style Makefile
Writing Makefile for Devel::NYTProf
Writing MYMETA.yml and MYMETA.json
[devel-nytprof] 592 $ make
Skip blib/lib/Devel/NYTProf/Data.pm (unchanged)

[snip]

Skip blib/lib/Devel/NYTProf/js/asc.png (unchanged)
Running Mkbootstrap for NYTProf ()
chmod 644 "NYTProf.bs"
"/home/jkeenan/testing/v5.34.0-RC1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- NYTProf.bs blib/arch/auto/Devel/NYTProf/NYTProf.bs 644
"/home/jkeenan/testing/v5.34.0-RC1/bin/perl" "/home/jkeenan/testing/v5.34.0-RC1/lib/perl5/5.34.0/ExtUtils/xsubpp"  -typemap '/home/jkeenan/testing/v5.34.0-RC1/lib/perl5/5.34.0/ExtUtils/typemap' -typemap '/home/jkeenan/gitwork/zzzothers/devel-nytprof/typemap'  FileHandle.xs > FileHandle.xsc
mv FileHandle.xsc FileHandle.c
cc -c   -D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2   -DVERSION=\"6.09\" -DXS_VERSION=\"6.09\" -fPIC "-I/home/jkeenan/testing/v5.34.0-RC1/lib/perl5/5.34.0/x86_64-linux-thread-multi-quadmath/CORE"  -DHAS_CLOCK_GETTIME -DHAS_ZLIB -DUSE_HARD_ASSERT -W -Wall -Wpointer-arith -Wbad-function-cast -Wno-comment -Wno-sign-compare -Wno-cast-qual -Wmissing-noreturn -Wno-unused-parameter FileHandle.c
FileHandle.xs: In function ‘NYTP_write_attribute_nv’:
FileHandle.xs:972:60: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
  972 |     const size_t len = my_snprintf(buffer, sizeof(buffer), "%"NVgf, value);
      |                                                            ^~~
FileHandle.xs:972:60: warning: too many arguments for format [-Wformat-extra-args]
"/home/jkeenan/testing/v5.34.0-RC1/bin/perl" "/home/jkeenan/testing/v5.34.0-RC1/lib/perl5/5.34.0/ExtUtils/xsubpp"  -typemap '/home/jkeenan/testing/v5.34.0-RC1/lib/perl5/5.34.0/ExtUtils/typemap' -typemap '/home/jkeenan/gitwork/zzzothers/devel-nytprof/typemap'  NYTProf.xs > NYTProf.xsc
mv NYTProf.xsc NYTProf.c
cc -c   -D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2   -DVERSION=\"6.09\" -DXS_VERSION=\"6.09\" -fPIC "-I/home/jkeenan/testing/v5.34.0-RC1/lib/perl5/5.34.0/x86_64-linux-thread-multi-quadmath/CORE"  -DHAS_CLOCK_GETTIME -DHAS_ZLIB -DUSE_HARD_ASSERT -W -Wall -Wpointer-arith -Wbad-function-cast -Wno-comment -Wno-sign-compare -Wno-cast-qual -Wmissing-noreturn -Wno-unused-parameter NYTProf.c
NYTProf.xs: In function ‘open_output_file’:
NYTProf.xs:1841:58: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
 1841 |             sprintf(&filename_buf[strlen(filename_buf)], ".%.0"NVff"", gettimeofday_nv());
      |                                                          ^~~~~~
NYTProf.xs:1841:58: warning: too many arguments for format [-Wformat-extra-args]
NYTProf.xs:1860:17: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
 1860 |         logwarn("~ opened %s at %.6"NVff"\n", filename, gettimeofday_nv());
      |                 ^~~~~~~~~~~~~~~~~~~~
NYTProf.xs:1860:17: warning: too many arguments for format [-Wformat-extra-args]
NYTProf.xs: In function ‘close_output_file’:
NYTProf.xs:1890:17: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
 1890 |         logwarn("~ closed file at %.6"NVff"\n", timeofday);
      |                 ^~~~~~~~~~~~~~~~~~~~~~
NYTProf.xs:1890:17: warning: too many arguments for format [-Wformat-extra-args]
NYTProf.xs: In function ‘incr_sub_inclusive_time’:
NYTProf.xs:2229:17: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
 2229 |         logwarn("%2u <-     %s %"NVgf" excl = %"NVgf"t incl - %"NVgf"t (%"NVgf"-%"NVgf"), oh %"NVff"-%"NVff"=%"NVff"t, d%d @%d:%d #%lu %p\n",
      |                 ^~~~~~~~~~~~~~~~~
NYTProf.xs:2229:17: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
NYTProf.xs:2229:17: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
NYTProf.xs:2229:17: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
NYTProf.xs:2229:17: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
NYTProf.xs:2229:17: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
NYTProf.xs:2229:17: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
NYTProf.xs:2229:17: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
NYTProf.xs:2229:17: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘NV’ {aka ‘_Float128’} [-Wformat=]
NYTProf.xs:2229:17: warning: format ‘%d’ expects argument of type ‘int’, but argument 5 has type ‘NV’ {aka ‘_Float128’} [-Wformat=]
NYTProf.xs:2229:17: warning: format ‘%d’ expects argument of type ‘int’, but argument 6 has type ‘NV’ {aka ‘_Float128’} [-Wformat=]
NYTProf.xs:2229:17: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 7 has type ‘NV’ {aka ‘_Float128’} [-Wformat=]
NYTProf.xs:2229:17: warning: format ‘%p’ expects argument of type ‘void *’, but argument 8 has type ‘NV’ {aka ‘_Float128’} [-Wformat=]
NYTProf.xs:2229:17: warning: too many arguments for format [-Wformat-extra-args]
NYTProf.xs: In function ‘pp_subcall_profiler’:
NYTProf.xs:2895:17: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
 2895 |         logwarn("%2u ->%4s %s::%s from %s::%s @%u:%u (d%d, oh %"NVff"t, sub %"NVff"s) #%lu\n",
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NYTProf.xs:2895:17: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
NYTProf.xs:2895:17: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 11 has type ‘NV’ {aka ‘_Float128’} [-Wformat=]
NYTProf.xs:2895:17: warning: too many arguments for format [-Wformat-extra-args]
NYTProf.xs: In function ‘finish_profile’:
NYTProf.xs:3051:17: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
 3051 |         logwarn("~ finish_profile (overhead %"NVgf"t, is_profiling %d)\n",
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NYTProf.xs:3051:17: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘NV’ {aka ‘_Float128’} [-Wformat=]
NYTProf.xs:3051:17: warning: too many arguments for format [-Wformat-extra-args]
NYTProf.xs: In function ‘write_sub_callers’:
NYTProf.xs:3679:29: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
 3679 |                     logwarn("%s call has negative time: incl %"NVff"s, excl %"NVff"s:\n",
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NYTProf.xs:3679:29: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
NYTProf.xs:3679:29: warning: too many arguments for format [-Wformat-extra-args]
NYTProf.xs:3690:29: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
 3690 |                     logwarn("%s called by %.*s at %u:%u: count %ld (i%"NVff"s e%"NVff"s, d%d ri%"NVff"s)\n",
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NYTProf.xs:3690:29: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
NYTProf.xs:3690:29: warning: format ‘%d’ expects argument of type ‘int’, but argument 8 has type ‘NV’ {aka ‘_Float128’} [-Wformat=]
NYTProf.xs:3690:29: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
NYTProf.xs:3690:29: warning: too many arguments for format [-Wformat-extra-args]
NYTProf.xs: In function ‘load_sub_callers_callback’:
NYTProf.xs:4279:17: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
 4279 |         logwarn("Sub %s called by %s %u:%u: count %d, incl %"NVff", excl %"NVff"\n",
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NYTProf.xs:4279:17: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
NYTProf.xs:4279:17: warning: too many arguments for format [-Wformat-extra-args]
NYTProf.xs: In function ‘load_pid_start_callback’:
NYTProf.xs:4401:17: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
 4401 |         logwarn("Start of profile data for pid %s (ppid %d, %"IVdf" pids live) at %"NVff"\n",
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NYTProf.xs:4401:17: warning: too many arguments for format [-Wformat-extra-args]
NYTProf.xs: In function ‘load_pid_end_callback’:
NYTProf.xs:4433:17: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
 4433 |         logwarn("End of profile data for pid %s (%"IVdf" remaining) at %"NVff"\n", text,
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NYTProf.xs:4433:17: warning: too many arguments for format [-Wformat-extra-args]
NYTProf.xs: In function ‘load_profile_to_hv’:
NYTProf.xs:5046:21: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
 5046 |             logwarn("The sum of the statement timings is %.1"NVff"%% of the total time profiling."
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NYTProf.xs:5046:21: warning: too many arguments for format [-Wformat-extra-args]
NYTProf.xs:5054:21: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
 5054 |             logwarn("Summary: statements profiled %lu (=%lu-%lu), sum of time %"NVff"s, profile spanned %"NVff"s\n",
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NYTProf.xs:5054:21: warning: unknown conversion type character ‘Q’ in format [-Wformat=]
NYTProf.xs:5054:21: warning: too many arguments for format [-Wformat-extra-args]
rm -f blib/arch/auto/Devel/NYTProf/NYTProf.so
[snip]
jkeenan commented 3 years ago

Remains open in CPAN release 6.10.