aboutsummaryrefslogtreecommitdiff
path: root/sim/common
AgeCommit message (Collapse)AuthorFilesLines
2012-04-02sim: fix spelling typoMike Frysinger2-1/+5
2012-03-29Commit gdb and sim support for v850e2 and v850e2v3 on behalf ofKevin Buettner3-12/+25
Rathish C <Rathish.C@kpitcummins.com>.
2012-03-26sim: add a proper sim_core_trans_addr prototypeMike Frysinger2-0/+12
The common code has a sim_core_trans_addr() helper that only the m32r code uses. Move the inline extern in the m32r code to the proper common header. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-03-24 * nrun.c: Add #ifdef HAVE_CONFIG_H and associated includes stanzaHans-Peter Nilsson2-0/+11
missing in last change.
2012-03-24[PATCH] sim: make sure to include strsignal prototypeMike Frysinger6-123/+235
Before POSIX standardized strsignal(), old systems would hide the prototype unless the normal extension defines were enabled. So use the AC_USE_SYSTEM_EXTENSIONS helper for that. Then make sure we include string.h ourselves in nrun.c rather than relying on implicit includes via other sim headers. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-03-23sim: sync build_warnings handling with gdbMike Frysinger2-26/+44
The sim code gets the logic for SIM_AC_OPTION_WARNINGS from gdb, but it hasn't been updated in a good long while. Sync with the latest gdb code. There is a sim specific change in here: we disable -Werror for now. This is because all sim code atm contains warnings. Will probably have to slowly add a white list of targets which can tolerate this until everyone is updated. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-03-19sim: use character classes rather than rangesMike Frysinger4-18/+25
A-Z ranges don't work in all locales, so use character classes instead. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-03-19sim: nrun: decode signal when crashingMike Frysinger2-1/+6
This isn't entirely correct in that it assumes the signal numbering of the target and host match, but seeing as we already make that assumption in a few places, this patch doesn't make the situation any worse. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-01-06sim: headers: use abs_srcdir to find helper scriptsMike Frysinger2-2/+9
Trying to run `headers` in an out-of-tree build fails atm due to the relative srcdir paths being used in a location other than where they were setup to be used from. Get abs_srcdir from configure and use that instead where applicable. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-01-04Copyright year update in most files of the GDB Project.Joel Brobecker111-184/+121
gdb/ChangeLog: Copyright year update in most files of the GDB Project.
2012-01-02Update the copyright header of various files...Joel Brobecker4-3/+8
... to follow the correct syntax (according to the gospel of gnulib's update-copyright). In other words: - no comma after the last year; - FSF spelled exactly "Free Software Foundation, Inc.", with the comma and the period at the end. sim/common/ChangeLog: * dv-sockser.h, sim-assert.h, sim-fpu.c: Reformat the copyright header. sim/m32c/ChangeLog: * blinky.S, gloss.S, sample.S: Reformat copyright header. sim/mn10300/ChangeLog: * sim-main.h: Reformat copyright header. sim/ppc/ChangeLog: * dp-bit.c: Reformat copyright header. gdb/ChangeLog: * gdb/common/gdb_thread_db.h, gdb/dbxread.c, gdb/environ.c, gdb/gcore.h, gdb/rs6000-tdep.h, gdb/s390-nat.c, gdb/tic6x-tdep.c: Reformat the copyright header. gdb/gdbserver/ChangeLog: * terminal.h: Reformat copyright header. gdb/testsuite/ChangeLog: * dg-extract-results.sh, gdb.arch/gcore.c, gdb.arch/gdb1558.c, gdb.arch/i386-gnu-cfi.c, gdb.base/complex.c, gdb.base/cvexpr.c, gdb.base/gcore.c, gdb.base/gdb1555-main.c, gdb.base/gdb1555.c, gdb.base/gdb1821.c, gdb.base/long_long.c, gdb.base/restore.c, gdb.base/sepdebug.c, gdb.base/type-opaque-lib.c, gdb.base/type-opaque-main.c, gdb.cp/maint.exp, gdb.cp/namespace1.cc, gdb.cp/pr9631.cc, gdb.cp/psmang1.cc, gdb.cp/psmang2.cc, gdb.cp/try_catch.cc, gdb.cp/virtfunc.cc, gdb.hp/gdb.base-hp/reg.exp, gdb.mi/basics.c, gdb.mi/mi-stack.c, gdb.mi/mi-var-child.c, gdb.mi/mi2-var-child.exp, gdb.mi/var-cmd.c, gdb.threads/thread_check.c: Reformat copyright header.
2011-12-19Work around Solaris bourne shell limitation when building the simJoel Brobecker2-2/+9
Building the sim on a sparc-solaris 2.8 machine fails when configured with no extra sim hardware: > for hw in ; do \ > echo "extern const struct hw_descriptor > dv_${hw}_descriptor[];" ; \ > done >> tmp-hw.h > echo 'const char version[] = "'"`sed q > /[...]/../../gdb/version.in`"'";' > >> version.c-tmp > /bin/sh: -c: line 1: syntax error near unexpected token `;' > /bin/sh: -c: line 1: `for hw in ; do \' > make[3]: *** [hw-config.h] Error 2 The same thing happens with the version of bash that we got from Sun as well (which is very old: 2.03.0(1)-release). The problems comes from the fact that both shells are buggy, and reject the following script: for hw in ; do [...] done The above is what sim/common/Makefile.in tries to execute when generating hw-config.h. In order to allow users to build out of the box on these machines, this patch works around this bug. It does rely on the fact that none of the tokens in SIM_HW contain whitespaces. sim/common/ChangeLog: * Make-common.in (hw-config.h): Work around bug in Solaris 2.8 system bourne shell.
2011-12-03sim: export cb_get_string for people to useMike Frysinger2-3/+8
The common sim code provides a useful "get_string" function which reads a C string out of the target's memory space. So rename and export it for other people to use. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-12-03sim: generate build dependencies on the flyMike Frysinger5-199/+346
Lift the code that GDB is using to generate dependencies on the fly and port it over to the sim. Now people shouldn't have to manually maintain these in their Makefile's. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-11-07sim: dv-cfi: check for posix_fallocateMike Frysinger5-3/+13
Some systems (like OS X) do not have posix_fallocate. Add a configure check for it before we try to use it. This is less work than trying to support old systems. URL: http://sourceware.org/bugzilla/show_bug.cgi?id=13161 Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-10-19sim: dv-cfi: check for log2 support in libm when enabledMike Frysinger2-1/+9
The dv-cfi model uses log2() internally, so make sure we automatically link in libm when required. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-10-19[sim]: Only print the profile info title once.Joel Brobecker2-1/+6
sim/common/ChangeLog: From John Wehle <john@feith.com> (tiny patch) * sim-profile.c (profile_info): Only print the title once.
2011-10-18sim: rename common/aclocal.m4 to common/acinclude.m4Mike Frysinger3-942/+961
Automake likes to dump macros automatically used into the aclocal.m4 file, but the common/aclocal.m4 naming prevents that. So rename it to the more normal "acinclude.m4" so the aclocal tool can work. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-10-18sim: move from common.m4 to SIM_AC_COMMONMike Frysinger5-593/+351
Now that the sourceware tree generally requires autoconf-2.64, update the sim tree to require that too. This allows us to drop the long standing SIM_AC_COMMON/common.m4 workaround as autoconf 2.64+ seems to work for me. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-10-142011-10-14 Alexey Makhalov <makhaloff@gmail.com>Tom Tromey2-2/+7
* sim-alu.h (ALU32_AND): Clear carry flag. (ALU32_AND): Clear carry flag.
2011-10-10sim: dv-cfi: include stdbool.hMike Frysinger2-0/+5
The dv-cfi code uses the bool type but doesn't include the stdbool.h header. I didn't notice for Blackfin targets as the core Blackfin header will include stdbool.h, but most targets don't do this. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-10-10sim: dv-cfi: include common headers onlyMike Frysinger2-1/+6
The "devices.h" header is Blackfin-specific, so trying to build dv-cfi for any other target fails. Include the specific hw headers this file needs directly. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-10-05sim: merge changes from common.m4 back into SIM_AC_COMMONMike Frysinger2-0/+13
Seems some fixes were added to the common.m4 file but not the SIM_AC_COMMON macro. Keep the two in sync since they're supposed to be the same thing. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-07-12sim: include sim-options.h for command prototypeMike Frysinger2-0/+5
The sim_args_command prototype is in sim-options.h, so pull it in directly rather than assuming a common header does it. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-07-12sim: fix broken skel configure.ac exampleMike Frysinger2-1/+5
Shell code before AC_INIT will be silently culled, and since the common aclocal.m4 includes inline shell code, the file cannot be included before AC_INIT. So update the example to show people including the file after that rather than before to avoid random breakage. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-07-12sim: use AC_REQUIRE with AC_PROG_CCMike Frysinger2-1/+6
The autoconf guys point out that our usage of AC_PROG_CC in the SIM_AC_COMMON does not jive with their intended use. http://www.gnu.org/software/autoconf/manual/autoconf.html#Expanded-Before-Required So utilize AC_REQUIRE to make the warnings go away and generate the correct code with different autoconf versions. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-07-05sim: start a unified sim_do_commandMike Frysinger3-0/+43
Since sim_do_command for many people simply calls sim_args_command, start a unified version of it. For people who handle their own options, they could switch to this by using sim_add_option_table instead. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-05-27sim: fix minor --sysroot mem leakMike Frysinger2-3/+13
The current --sysroot parsing attempts to keep from leaking memory by treating the empty string specially (sine this is the initial value), but it ends up leaking memory when the arg is an empty string. So if someone uses --sysroot "", the old value is leaked, as is the new one. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-05-26sim: common: add back Blackfin syscallsMike Frysinger2-0/+35
A semi-recent change which regenerated nltvals.def somehow missed all of the Blackfin syscalls. So regenerate against the latest tree to get them back. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-05-26sim: add syscall tracing levelMike Frysinger3-1/+30
It's useful to be able to trace just the system calls the simulated program is calling, so add a new --trace-syscall option for ports to leverage if they choose. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-05-23sim: glue: allow bitwise devices to only glue intsMike Frysinger2-47/+61
Some Blackfin parts tie a bunch of interrupt lines into a single OR gate before feeding the result into the SIC. The glue-or device in the sim provides a nice way of modeling this exact behavior. At the moment though, it requires the device to be mapped into the address space so that things could write to it directly. This is not needed for the Blackfin usage, so make it optional. Now the glue devices can be used to simply tie interrupt lines together. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-05-23sim: glue: implement or/xor funcsMike Frysinger2-7/+34
The glue device has a bunch of "todos" for the misc bitwise devices. So implement two for fun -- the glue-or and glue-xor. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-05-11sim: fix func call style (space before paren)Mike Frysinger24-241/+250
Committed this as obvious: -foo(...); +foo (...); Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-04-15gdb: sim: add style fixes lost between git->cvsMike Frysinger1-0/+1
2011-04-15gdb: sim: add command line completionMike Frysinger2-0/+56
For now, only the sub-command name is completed. No support yet for completing options to that command. But even this is a huge step as currently, nothing is completed, and the basic "help sim" is fairly obtuse as to what exactly the "sim" command accepts. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-04-02sim: dv-glue: fix up style a bitMike Frysinger2-7/+38
This touches up the code a bit to match GNU style. No functional changes. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-04-02sim: fix up style a bitMike Frysinger14-80/+137
This touches up the code a bit to match GNU style. No functional changes. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-03-29sim: cfi: new flash device simulationMike Frysinger5-1/+869
This simulates a CFI flash. Its pretty configurable via the device tree. For now, only basic read/write/erase operations are supported for the Intel command set, but it's easy enough to extend support. It's certainly enough to trick Das U-Boot into using it for probing, reading, writing, and erasing. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-03-21 * gennltvals.sh: Search sys/_default_fcntl.h, in addition toKevin Buettner5-384/+390
fcntl.h and sys/fcntl.h, for constants. * nltvals.def: Regenerate. * sim-io.c (sim_io_stat, sim_io_fstat): New functions. * sim-io.h (sys/types.h, sys/stat.h): Include. (sim_io_stat, sim_io_fstat): Declare.
2011-03-15sim: common: trim trailing whitespaceMike Frysinger42-292/+300
2011-03-06sim: bfin: new portMike Frysinger3-0/+39
This can boot Das U-Boot and a Linux kernel. It also supports Linux userspace FLAT and FDPIC (dynamic and static) ELFs. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-02-25 * callback.c (fdbad): Return EBADF rather than EINVAL for badKevin Buettner2-1/+6
file descriptors.
2011-02-14sim: punt zfree()Mike Frysinger16-51/+63
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>
2011-02-14sim: change to 64bit time keeping to avoid 32bit overflowsMike Frysinger2-1/+5
The sim-events code jumps through some hoops to avoid using 64bit math to manage the current time. One fundamental assumption here is that by constantly scheduling the sim poll event a short time into the future, the 64bit difference will always fall into a signed 32bit value. This does work most of the time, except for when processing the sim poll event itself. Normally, sim_events_process() will dequeue the sim poll event, update the current time (time_from_event) according to the next pending event, process the sim poll event (which will then requeue the sim poll event), and then continue on. The problem here of course is that the current time is updated in that small window before the sim poll event gets a chance to reschedule itself. So if the 64bit difference between the current time and the next event does not fit into the signed 32bit value, time_from_event overflows, and the internal assert at the end of update_time_from_event() triggers. Since attempts at tweaking sim_events_process() logic introduced other subtle bugs (due to tangled assumptions between most pieces of the sim time keeping code), change the time_from_event to a real 64bit value. Tests on my system between a 32bit ELF and a 64bit ELF show no practical difference (it's all lost in the system noise). Basically, I booted a Linux kernel to userspace and then paniced it; this gave me a constant sample size of about 18 million insns. This was noticed when simulating Blackfin Das U-Boot. The simulated core timer is given the max unsigned timeout value possible on a 32bit processor (0xffffffff). This timeout value is used directly to schedule a hw event in the sim future (the IRQ firing). Once the sim poll event is kicked off, the next pending event is the core timer event which is more than 2^31 ticks in the future, and the sim aborts with: sim-events.c:435: assertion failed - current_time == sim_events_time (sd) Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-01-12sim: enable hw_tree_delete in sim_hw_uninstallMike Frysinger2-1/+5
I can't find any history for why the call to hw_tree_delete is commented out, and the VCS history shows that this goes back to the original import in 2009. I did find some vague reference to it from 2000 (pretty close to the original import of code), but no actual details. Without this call, every new instance of the sim results in all old previously allocated resources being leaked. With some devices, this isn't just memory, it's things like open file descriptors or mmaps. So if there are pending issues with this, I'd rather we get the sims sorted out rather than continuing to leak this stuff. Especially since the "let's wait for the sims to fix themselves" hasn't actually happened in the last 10+ years. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-01-12sim: check asprintf return valuesMike Frysinger5-6/+29
These are the last sources of build warnings (asprintf usage) that I see. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-01-11sim: allow memory maps to default to mapped filesMike Frysinger2-10/+38
I find it annoying when using --memory-mapfile that I also need to look up and manually specify the file size to the following --memory-region option. So make a length of 0 in the following --memory-region trigger an auto-sizing of the map to the length of the file being mapped. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-01-10sim: fix handling of 2nd arg to SIM_AC_OPTION_HARDWAREMike Frysinger2-3/+9
The 2nd arg to SIM_AC_OPTION_HARDWARE is described as "a space separated list of devices that override the defaults" while the 3rd arg is "a space separated list of extra target specific devices". But the macro doesn't seem to treat the 2nd arg this way. Instead, it will always add the default list of devices, and only add the extra target specific devices if the 2nd arg is not specified. So rework the logic slightly to handle the 2nd arg as documented. This shouldn't affect any targets in the tree as no one passes in a non- empty value as the 2nd arg. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-01-10sim: add noreturn markings to more hw abort/halt funcsMike Frysinger3-4/+9
These functions either call abort() themselves, or call functions which are already marked noreturn. Either way, they don't return, so mark them as such so calling code can assume this. This fixes some uninitialized warnings due to code paths that end in an abort function. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-01-05sim: tweak load buffer type to avoid signed warningsMike Frysinger2-1/+5
The sim_load_file func creates a buffer with arbitrary data in it (reads it via the bfd). It then passes it on to a sim_write_fn which expects a unsigned char buffer. Since sim_load_file itself doesn't care about the contents, tweak the type to avoid signed mismatch warnings from gcc: common/sim-load.c: In function ‘sim_load_file’: common/sim-load.c:143: warning: pointer targets in passing argument 3 of ‘do_write’ differ in signedness common/sim-load.c:143: note: expected ‘const unsigned char *’ but argument is of type ‘char *’ Signed-off-by: Mike Frysinger <vapier@gentoo.org>