For a script with thousands of probes, with lots of automated $$vars pretty-printing, it is possible to generate an amazing quantity of C / object code. We should make it less bad.
Created attachment 6314 [details] some artefacts from a script compilation that went bad, bad, so terribly bad
Regarding commit 8f12266 "PR13847: simplify compiled-printf functions", which undid commit 0a4d3238 "PR3217: Make compiled-printf functions noinline". I didn't document well my motivation for noinline, especially which platforms reproduce the issue. I've just found again this frame size issue though, and reverting 8f12266 fixes it. $ stap ../testsuite/systemtap.printf/int1.stp /tmp/stapH5c5hz/stap_efb73b1930e23fc0d9274ea48c731d59_2359_src.c: In function ‘probe_2001’: /tmp/stapH5c5hz/stap_efb73b1930e23fc0d9274ea48c731d59_2359_src.c:3339:1: error: the frame size of 740 bytes is larger than 256 bytes [-Werror=frame-larger-than=] cc1: all warnings being treated as errors make[1]: *** [/tmp/stapH5c5hz/stap_efb73b1930e23fc0d9274ea48c731d59_2359_src.o] Error 1 make: *** [_module_/tmp/stapH5c5hz] Error 2 WARNING: make exited with status: 2 Pass 4: compilation failed. Try again with another '--vp 0001' option. $ stap -V Systemtap translator/driver (version 1.8/0.153 commit release-1.7-157-gcc0901e) Copyright (C) 2005-2012 Red Hat, Inc. and others This is free software; see the source for copying conditions. enabled features: AVAHI LIBRPM LIBSQLITE3 NSS BOOST_SHARED_PTR TR1_UNORDERED_MAP NLS $ uname -r 3.3.1-3.fc16.i686.PAE $ rpm -q gcc kernel-PAE gcc-4.6.3-2.fc16.i686 Another details worth noting? There are a few other testcases that also fail this way, but not quite so horribly. systemtap.base/warn_overflow.exp 352 bytes systemtap.examples/process/syscalls_by_pid 348 bytes systemtap.examples/process/syscalls_by_proc 340 bytes systemtap.examples/profiling/topsys 352 bytes buildok/aux_syscalls-embedded.stp 308 bytes buildok/nd_syscalls2-detailed.stp 352 bytes