Re: H8300 simulator on MinGW fails to compile.

Chris Johns
2006-09-19T01:20:16Z

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