Define an error function in the PPC simulator library.
authorJohn Baldwin <jhb@FreeBSD.org>
Tue, 5 Sep 2017 02:53:50 +0000 (19:53 -0700)
committerJohn Baldwin <jhb@FreeBSD.org>
Tue, 5 Sep 2017 02:56:00 +0000 (19:56 -0700)
Previously this used the error function from GDB directly when linked
against GDB instead of the error method in the host callbacks
structure.  This was exposed via a link error when GDB was converted
to C++.  The error function invokes the error callback similar to
sim_io_error.

Note that there are also error functions in sim/ppc/main.c and
sim/ppc/misc.c.  The ppc libsim.a expects each consumer to provide
several symbols used by the library including "error".  sim-calls.c
provides these symbols when the library is linked into gdb.  The dgen,
igen, tmp-filter, tmp-ld-decode, tmp-ld-cache, and tmp-ld-insn programs
use the functions from misc.c.  psim uses the functions from main.c.

sim/ppc/ChangeLog:

PR sim/20863
* sim_calls.c (error): New function.

sim/ppc/ChangeLog
sim/ppc/sim_calls.c

index c0bb1f5b8b4611dea8888ee9e6a5312aeafadfdc..9573e7ba0489dfcc3e92e8fac15f3b85fe1fa5ff 100644 (file)
@@ -1,3 +1,8 @@
+2017-09-05  John Baldwin  <jhb@FreeBSD.org>
+
+       PR sim/20863
+       * sim_calls.c (error): New function.
+
 2017-02-13  Mike Frysinger  <vapier@gentoo.org>
 
        * cpu.h: Include libiberty.h.
index 470c95862a14ffdfff801340e39e3b3d42e56cc4..eb5d1a792b26d21a6807f63215e36dd6377ac410 100644 (file)
@@ -386,6 +386,16 @@ sim_io_error (SIM_DESC sd, const char *fmt, ...)
 
 /****/
 
+void NORETURN
+error (const char *msg, ...)
+{
+  va_list ap;
+  va_start(ap, msg);
+  callbacks->evprintf_filtered (callbacks, msg, ap);
+  va_end(ap);
+  callbacks->error (callbacks, "");
+}
+
 void *
 zalloc(long size)
 {