* linker.c (default_fill_link_order): Handle four byte fill value.
[deliverable/binutils-gdb.git] / sim / README-HACKING
index 21c34f625fd73fef112307e19e2373cdaa9a4af9..e4efeb155b0377c175615c6708e8dc9d8dad9131 100644 (file)
@@ -8,6 +8,8 @@ Contents
 - TAGS support
 - Generating "configure" files
 - tconfig.in
+- C Language Assumptions
+- "dump" commands under gdb
 \f
 The "common" directory
 ======================
@@ -127,31 +129,30 @@ are greppable and appear in the TAGS file.
 Generating "configure" files
 ============================
 
-For target's using the common framework, "configure" can be generated
-by running autoconf.  This works because configure.in contains
-"sinclude(../common/aclocal.m4)".
+For targets using the common framework, "configure" can be generated
+by running `autoconf'.
 
 To regenerate the configure files for all targets using the common framework:
 
        $  cd devo/sim
-       $  make -f Makefile.in autoconf-common
+       $  make -f Makefile.in SHELL=/bin/sh autoconf-common
 
 To add a change-log entry to the ChangeLog file for each updated
 directory (WARNING - check the modified new-ChangeLog files before
 renaming):
 
-       $  make -f Makefile.in autoconf-changelog
+       $  make -f Makefile.in SHELL=/bin/sh autoconf-changelog
        $  more */new-ChangeLog
-       $  make -f Makefile.in autoconf-install
+       $  make -f Makefile.in SHELL=/bin/sh autoconf-install
 
 In a similar vein, both the configure and config.in files can be
 updated using the sequence:
 
        $  cd devo/sim
-       $  make -f Makefile.in autoheader-common
-       $  make -f Makefile.in autoheader-changelog
+       $  make -f Makefile.in SHELL=/bin/sh autoheader-common
+       $  make -f Makefile.in SHELL=/bin/sh autoheader-changelog
        $  more */new-ChangeLog
-       $  make -f Makefile.in autoheader-install
+       $  make -f Makefile.in SHELL=/bin/sh autoheader-install
 \f
 tconfig.in
 ==========
@@ -162,3 +163,92 @@ For a list of all of them, see common/tconfig.in.
 It contains them all, commented out.
 The intent is that a new port can just copy this file and
 define the ones it needs.
+\f
+C Language Assumptions
+======================
+
+The programmer may assume that the simulator is being built using an
+ANSI C compiler that supports a 64 bit data type.  Consequently:
+
+       o       prototypes can be used (although using
+               PARAMS() and K&R declarations wouldn't
+               go astray).
+
+       o       If sim-types.h is included, the two
+               types signed64 and unsigned64 are
+               available.
+
+       o       The type `unsigned' is valid.
+
+However, the user should be aware of the following:
+
+       o       GCC's `<number>LL' is NOT acceptable.
+               Microsoft-C doesn't reconize it.
+
+       o       MSC's `<number>i64' is NOT acceptable.
+               GCC doesn't reconize it.
+
+       o       GCC's `long long' MSC's `_int64' can
+               NOT be used to define 64 bit integer data
+               types.
+
+       o       An empty array (eg int a[0]) is not valid.
+
+When building with GCC it is effectivly a requirement that
+--enable-build-warnings=,-Werror be specified during configuration.
+\f
+"dump" commands under gdb
+=========================
+
+gdbinit.in contains the following
+
+define dump
+set sim_debug_dump ()
+end
+
+Simulators that define the sim_debug_dump function can then have their
+internal state pretty printed from gdb.
+
+FIXME: This can obviously be made more elaborate.  As needed it will be.
+\f
+Rebuilding nltvals.def
+======================
+
+Checkout a copy of the SIM and LIBGLOSS modules (Unless you've already
+got one to hand):
+
+       $  mkdir /tmp/$$
+       $  cd /tmp/$$
+       $  cvs checkout sim-no-testsuite libgloss-no-testsuite newlib-no-testsuite
+
+Configure things for an arbitrary simulator target (I've d10v for
+convenience):
+
+       $  mkdir /tmp/$$/build
+       $  cd /tmp/$$/build
+       $  /tmp/$$/devo/configure --target=d10v-elf
+
+In the sim/common directory rebuild the headers:
+
+       $  cd sim/common
+       $  make headers
+
+To add a new target:
+
+       devo/sim/common/gennltvals.sh
+
+               Add your new processor target (you'll need to grub
+               around to find where your syscall.h lives).
+
+       devo/sim/<processor>/Makefile.in
+
+               Add the definition:
+
+                       ``NL_TARGET = -DNL_TARGET_d10v''
+
+               just before the line COMMON_POST_CONFIG_FRAG.
+
+       devo/sim/<processor>/*.[ch]
+
+               Include targ-vals.h instead of syscall.h.
+
This page took 0.027673 seconds and 4 git commands to generate.