Commit graph

4508 commits

Author SHA1 Message Date
Mike Frysinger
999b474b8a sim: callback: add check for HAVE_KILL
Fix building on systems w/out a kill function (e.g. Windows).
2021-06-29 20:12:57 -04:00
Mike Frysinger
c42ed5fca2 sim: cris: remove cgen-ops.h include hack
This has been upstreamed into cgen itself.
2021-06-29 20:09:17 -04:00
Mike Frysinger
ba9666525f sim: model: constify sim_machs storage
The array of pointers is never modified, so mark it const so it ends
up in the read-only data section.
2021-06-29 20:08:10 -04:00
Mike Frysinger
fda2f85e58 sim: io: add printf attributes to vprintf funcs too
The compiler can still do basic format checks with vprintf style
funcs, so add the printf attribute to these.
2021-06-29 02:20:28 -04:00
Mike Frysinger
a1d9117f94 sim: callback: add printf attributes
This helps these funcs get printf format checking coverage.

The sim-io.c hack as a result is a bit unfortunate, but the compiler
throws warnings when printing with empty strings.  In this one case,
we actually want that due to the side-effect of the callback halting
execution for us.
2021-06-29 02:14:58 -04:00
Mike Frysinger
54e66d16e8 sim: callback: drop unused printf helpers
These cover functions aren't used anywhere, so drop them.  There was
one caller, but it's old DOS code that most likely hasn't been tested
in years, so just delete that too.
2021-06-29 02:00:29 -04:00
Mike Frysinger
1fb164a112 sim: cgen: require long long support
We require C11 now, so we can assume & require long long exists.
Drop this old code that hasn't been used for a long long time.
2021-06-29 01:25:11 -04:00
Mike Frysinger
78484bcab9 sim: bpf: enable -Werror usage
Now that all bpf warnings have been cleaned up, turn on -Werror.
2021-06-28 11:30:47 -04:00
Mike Frysinger
f2ddf6e39d sim: bpf: fix printf warnings on 32-bit systems
Use PRI macros to display 64-bit types instead of assuming long is
a 64-bit type itself.
2021-06-28 11:26:09 -04:00
Mike Frysinger
ba4990f13f sim: cgen: delete unused record_trace_results functions
Since there are no callers of this anywhere, nor is the function
implemented by anyone, drop it across the board to cleanup warnings.
2021-06-28 11:25:21 -04:00
Mike Frysinger
dd5ef931df sim: frv: add missing const type 2021-06-27 23:36:56 -04:00
Mike Frysinger
520ca9a7be sim: frv: fix engine hook
This hook doesn't return a value, so don't define it to 0 to avoid
the compiler warning about it not being used.
2021-06-27 23:36:28 -04:00
Mike Frysinger
a9d200398a sim: frv: fix up various missing prototype warnings
Some of these were missing includes, some were unused funcs we can
cleanup, and some were missing prototypes for use in other files.
2021-06-27 23:35:46 -04:00
Mike Frysinger
2b83b95803 sim: frv: fix some printf type mismatch warnings
The %p usage was a real bug that would probably cause a crash.
2021-06-27 23:33:26 -04:00
Mike Frysinger
247867ebd3 sim: frv: fix uninitialized variable warning
This variable isn't set anywhere, so pass down NULL_CIA to indicate
we don't have a pc to pass.
2021-06-27 23:31:28 -04:00
Mike Frysinger
1415825a1b sim: frv: fix return type for post_wait_for funcs
These functions never return anything, so change the int return type
to void to fix a bunch of compiler warnings about missing return.
2021-06-27 23:30:01 -04:00
Mike Frysinger
ff68b4b5b1 sim: frv: fix ambiguous else compiler warnings
Add explicit braces to if bodies when the body is another if/else
to fix a bunch of compiler warnings.
2021-06-27 23:30:01 -04:00
Mike Frysinger
e0fd25e485 sim: bpf/cris: include cgen-mem in decoders
These arches use cgen memory functions, so make sure to include the
header in the modules.
2021-06-27 10:54:06 -04:00
Mike Frysinger
76f11310df sim: bpf: include more local headers & fix broken funcs
Various files were not including the relevant headers, or some funcs
were missing prototypes entirely, leading to mismatch between the
actual definition of the functions.  Add includes to a few places and
fix the broken functions that are uncovered as a result.  Fixing some
compile warnings (e.g. missing prototypes) often find real bugs.
2021-06-27 10:53:15 -04:00
Mike Frysinger
5db3a175cc sim: cgen: suppress trace non-literal printf warning
The cgen trace macros are a bit ugly in that they specify a series of
format strings & arguments in a single call.  This means we pass a
non-literal string to printf and the compiler warns about it.  Use
the diagnostic macros to suppress that in this one place.
2021-06-27 10:49:38 -04:00
Mike Frysinger
b69bd9e723 sim: cgen: add asserts to fix unused engine warnings
If the user passed in values outside the range of [0, MAX_NR_PROCESSORS),
it would cause the code to access out-of-bind engine function pointers.
Add some asserts to catch that and to fix the related compiler warnings.
2021-06-27 10:48:07 -04:00
Mike Frysinger
a7ffa88dc6 sim: cgen: add printf attributes in a few more calls
This helps the compiler process calls to these functions and emit
warnings about mismatched format arguments.
2021-06-27 10:46:27 -04:00
Mike Frysinger
ded82565c6 sim: cgen: constify trace strings
Shouldn't be any functional changes here.
2021-06-27 10:45:51 -04:00
Mike Frysinger
2d922d86ba sim: cgen: always leverage the mem prototypes
This fixes missing prototype warnings, and guarantees the prototypes
stay in sync with the function definitions.  One of the macros had
fallen out by declaring the wrong return type.
2021-06-27 10:44:22 -04:00
Mike Frysinger
694d6fdba1 sim: cgen: always leverage the ops prototypes
This fixes missing prototype warnings, and guarantees the prototypes
stay in sync with the function definitions.
2021-06-27 10:42:51 -04:00
Mike Frysinger
5a4ce7aea0 sim: cgen: sync prototypes with implementation
These prototype blocks are not normally used, so they've fallen out
of sync with the actual function definitions.  Resync them all.
2021-06-27 10:41:02 -04:00
Mike Frysinger
44e88cd631 sim: bpf: add explicit casts when using explicit formats
Since the value variable usually has an incompatible type for the wide
variety of types it is printed as, add explicit casts to them all.
2021-06-27 10:37:37 -04:00
Mike Frysinger
cc9c19b030 sim: bpf: fix mixed decls & code warnings (and style) 2021-06-27 10:36:55 -04:00
Mike Frysinger
5d0b3088f7 sim: erc32: merge with common configure script
Move the unique library tests to the common code so we can delete
the erc32 configure logic entirely.
2021-06-27 01:21:47 -04:00
Mike Frysinger
d57b653328 sim: bfin: move pkg-config & SDL checks to common code
This reduces the unique logic in bfin/configure to make it easier to
(eventually) unify it entirely.
2021-06-27 01:18:22 -04:00
Mike Frysinger
a7cde6df40 sim: cris: fix a few missing prototype warnings
Add a stub prototype for the dump function meant to be called by devs
from gdb, and trim unused functions that aren't supposed to be used.
2021-06-24 23:52:06 -04:00
Mike Frysinger
bdedb2d21b sim: callback: extend syscall interface to handle 7 args
The Linux syscall interface, depending on architecture, handles up to
7 arguments.  Extend the callback API to handle those.
2021-06-24 23:51:16 -04:00
Mike Frysinger
2f631626f1 sim: syscall: handle killing the sim itself
If code tries to send a signal to itself, the callback layer ignores
it and forces the caller to handle it.  This allows the sim to turn
that into an engine halt rather than actually killing the sim.
2021-06-23 20:11:45 -04:00
Mike Frysinger
e91488f739 sim: cris: override getpid callback
The cris linux syscall layers assume getpid returns a constant,
so add a custom function to provide that.
2021-06-23 20:10:08 -04:00
Mike Frysinger
d394a6efed sim: callback: add a kill interface
This will make it easier to emulate the syscall.  If the kill target
is the sim itself, don't do anything.  This forces the higher layers
to make a decision as to how to handle this event: like halting the
overall engine process.
2021-06-23 20:05:14 -04:00
Mike Frysinger
b34084121a sim: switch common srcdir to abs_srcdir
We rewrite srcdir in subdir Makefiles that we generate from the common
parent dir since it points to the parent dir.  Since @srcdir@ can be a
variety of formats (relative & absolute), switch to @abs_srcdir@ which
is a lot easier to adjust.  Our use of srcdir in here should handle it.
2021-06-23 18:12:43 -04:00
Mike Frysinger
072d63a871 sim: cris: fix a few warnings
Include header for hw funcs called, adjust prototype to match the
args given to it, and adjust cast to match the function.
2021-06-22 19:41:00 -04:00
Mike Frysinger
13b0d6e5a2 sim: callback: add missing cb_target_to_host_signal
There's been a prototype for this forever, but the implementation was
missing.  Probably because there weren't any callers, but we'll start
using it to implement the kill function.
2021-06-22 19:38:48 -04:00
Mike Frysinger
cc40b4f2a3 sim: callback: generate signal map
We've been generating the syscall/errno/open maps, but not the signal
map, even though we've been including them in the source constants.
2021-06-22 19:38:09 -04:00
Mike Frysinger
c45cffdbe1 sim: callback: add a getpid interface
Rather than hit the OS interface directly, use the existing callback
layer so the instantiator can decide behavior.
2021-06-22 19:36:28 -04:00
Mike Frysinger
e173c80fbb sim: rx: merge with common configure script
Move the unique configure flag to acinclude.m4 so the common code
can include it, then delete the rx configure logic entirely.
2021-06-22 19:29:28 -04:00
Mike Frysinger
36bb57e40c sim: drop configure scripts for simple ports
These ports only use the pieces that have been unified, so we can
merge them into the common configure script and get rid of their
unique one entirely.

We still compile & link separate run programs, and have dedicated
subdir Makefiles, but the configure script portion is merged.
2021-06-22 19:26:13 -04:00
Mike Frysinger
456ef1c1d4 sim: unify hardware settings
Move these options up to the common dir so we only test & export
them once across all ports.
2021-06-21 22:20:18 -04:00
Mike Frysinger
be0387eed0 sim: hw: rework configure option & device selection
The sim-hardware configure option allows builders to select a set of
device models to enable.  But this seems like unnecessary overkill:
the existence of individual device models doesn't affect performance
at all as they are only enabled at runtime if the config uses them,
and individually these are all <5KB a piece.  Stripping off a total
of ~50KB from a ~1MB binary doesn't seem useful, and it's extremely
unlikely anyone will ever bother.

So let's simplify the configure/make logic by turning sim-hardware
into a boolean option like many of the other sim options.  Any ports
that have unique device models will declare them in their Makefile
instead of at configure time.  This will allow us to (eventually)
unify the setting into the common dir.
2021-06-21 21:36:51 -04:00
Mike Frysinger
1b40d569a8 sim: cris: clean up printf & abort usage a bit
Inline the stats printf calls to avoid compiler warnings about
non-literal format strings.  This in turn highlights bad type
sizes being passed in, so fix the strings to use the right size
type.  This in turn highlights the rest of the func using casts
rather than the right type directly, so adjust all of those.

Finally, replace a few abort+sim_engine_halt calls with the
common sim_engine_abort.  This provides good output while still
aborting as we want.
2021-06-20 23:45:24 -04:00
Mike Frysinger
4488e43c49 sim: rx: scope the unique configure flag
This will make it possible to merge into the common configure by
making sure we never collide with other arches.
2021-06-20 01:13:14 -04:00
Mike Frysinger
3eda63f2e4 sim: delete SIM_AC_COMMON macro
Now that we've moved all content out to the common file, this is
empty and can be deleted it entirely.
2021-06-20 00:39:38 -04:00
Mike Frysinger
3a829bc50c sim: unify general maintainer settings
Move these options up to the common dir so we only test & export
them once across all ports.  This takes a page from the cgen maint
logic to make $(MAINT) work for non-automake Makefiles which will
allow us to merge it together.
2021-06-20 00:31:27 -04:00
Mike Frysinger
1bf5c34239 sim: unify cgen maintainer settings
Move these options up to the common dir so we only test & export
them once across all ports.  It makes it available to targets that
aren't cgen-based, but those will just ignore the settings, so it
shouldn't be an issue.
2021-06-20 00:25:13 -04:00
Mike Frysinger
4ca8baee00 sim: m68hc11: fix unused function warnings with -O0
Mark these functions as unused in case they don't get inlined when
building with -O0.
2021-06-20 00:17:08 -04:00