This test, which measures the performance of cprintf vs. sprintf, was
missing a couple of includes which were needed for the alarm() and
signal() functions, as well as the SIGALRM constant.
Also, it was using %#x to print the value of a pointer which gcc
complained about when compiling sprintf. This is fixed by changing that
format specifier to %p, the specifier to use when printing pointers.
Apparently either the implicit conversion to an integer value (which %#x
expects) or the size of the type it was converted to weren't good enough
for gcc any more.
Change-Id: I8eca3479bef2c2fa79f8ef4881bb3ff35d7c54ca
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/33897
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include <unistd.h>
+
+#include <csignal>
#include <iostream>
#include <list>
#include <sstream>
while (!stop) {
stringstream result;
ccprintf(result,
- "this is a %s of %d iterations %3.2f %#x\n",
+ "this is a %s of %d iterations %3.2f %p\n",
"test", iterations, 51.934, &result);
iterations += 1;
while (!stop) {
char result[1024];
sprintf(result,
- "this is a %s of %d iterations %3.2f %#x\n",
+ "this is a %s of %d iterations %3.2f %p\n",
"test", iterations, 51.934, &result);
iterations += 1;