This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: H8300 simulator on MinGW fails to compile.


Daniel Jacobowitz wrote:

There's at least two different things at issue here. nrun.c, I believe, does not get linked in when the simulator is used from GDB. Instead, it's only used for the 'foo-elf-run' binaries. As such, it receives actual host signals (specifically SIGINT). So that's undoubtedly a host signal number. But then that queues up SIM_SIGINT inside the simulator.


I now understand the source of signals when run as a stand alone program.


What's interesting is to trace a particular use of a host signal number
through the various files, and figure out where it's set and used.  I
can generally do them one at a time.  For instance, the h8300 use of
SIGBUS:

sim_engine_set_run_state (sd, sim_stopped, SIGBUS);

One call site for sim_engine_set_run_state passes SIM_SIGTRAP, another
passes pending_sigrc, but both are inside #if 0. Another passes 0. Everything else uses a host signal number, and comes from the h8300
sim. The signal number gets stored in engine->sigrc.


There's two ways to get it out again: sim_stop_reason leaves it as is
if sim_exited and treats it as a SIM_* signal if sim_stopped or
sim_signalled, and sim_engine_get_run_state just returns it.

The other way to set ->sigrc is sim_engine_halt.  And pretty much all
call sites use SIM_* constants for that, as far as I checked.


This is how I see the flow. I think it is simplest to try and get to just SIM_* and TARGET_SIGNAL_* and no host signal numbers in the simulators.


So what all that boils down to is, I think the h8300 sim is simply
wrong.  The use of SIGINT for signal() is fine, but all the others
should probably be changed.  Then you won't need the definitions any
more.  Want to give it a try?

Yeap will do.



What is simplest way to run 'make check' on the simulator ?

Some simulators have a testsuite, others don't; h8300 appears not to. You can always stress it by using it to run other things, like the GCC testsuite.


I am not sure I understand what you mean by running the gcc testsuite.


I will also chat to Joel Sherrill as he has put the H8300 into RTEMS and see what RTEMS tests we can run.

Thanks.

Regards
Chris


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]