Because "%p" is the pointer conversion specifier to print a pointer in an
implementation-defined manner, the result with format string containing
"0x%p" can be strange. For instance, core_map_find_mapping prints error
containing "0x0x...." (processor is not NULL) or "0x(null)" (processor is
NULL) on glibc.
This commit replaces "0x%p" with "%p" to prevent unpredictable behavior.
After the recent series of fixes to mark more functions in the
simulator with ATTRIBUTE_PRINTF, there were some build failures in the
ppc sim due, in some cases, to bugs with the arguments being passed,
and in other cases, the issues were (maybe) less serious, with
arguments being the wrong size, or type, for the printf format being
used.
This commit fixes all of the issues that I ran into.
In each case I selected the easiest solution to the problem, which is
usually just casting the argument to the correct type. If anyone
later on thinks the print format should change, please feel free to do
that. What we have here should keep the simulator basically working
as it does currently, which is my goal with this commit.
The sim keeps track of which allocations are zero-ed internally (via
zalloc) and then calls a helper "zfree" function rather than "free".
But this "zfree" function simply calls "free" itself. Since I can
see no point in this and it is simply useless overhead, punt it.
The only real change is in hw-alloc.c where we remove the zalloc_p
tracking, and sim-utils.c where zfree is delete. The rest of the
changes are a simple `sed` from "zfree" to "free".
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* core.h: Rename to corefile.h
* inline.c: Include corefile.h, renamed from core.h.
* cpu.h: Include corefile.h, renamed from core.h
* vm.c: Include corefile.h, renamed from core.h
* Makefile.in (CPU_H): Change core.h to corefile.h
(vm.o): Change dependency to corefile.h
(LIB_SRC): Change core.c to corefile.c.
(LIB_OBJ): Change core.o to corefile.o.
(corefile.o): Change dependencies to corefile.c, corefile.h.
* corefile.c: Include corefile.h rather than core.h
* README.psim (KNOWN PROBLEMS): Change core.* references to corefile.*
references.