---------------------
Pick a name for your host. Call that <host>.
(<host> might be sun4, ...)
-Create a file hosts/h-<host>.
+Create a file hosts/<host>.mh.
Porting to a new target
-----------------------
Pick a name for your target. Call that <target>.
-You need to create <target>.c and config/mt-<target>.
-
-config/mt-<target> is a Makefile fragment.
+Call the name for your CPU architecture <cpu>.
+You need to create <target>.c and config/<target>.mt,
+and add a case for it to a case statements in bfd/configure.host and
+bfd/config.bfd, which associates each canonical host type with a BFD
+host type (used as the base of the makefile fragment names), and to the
+table in bfd/configure.in which associates each target vector with
+the .o files it uses.
+
+config/<target>.mt is a Makefile fragment.
The following is usually enough:
DEFAULT_VECTOR=<target>_vec
SELECT_ARCHITECTURES=bfd_<cpu>_arch
See the list of cpu types in archures.c, or "ls cpu-*.c".
-for more information about .mt and .mh files, see config/README.
+If your architecture is new, you need to add it to the tables
+in bfd/archures.c, opcodes/configure.in, and binutils/objdump.c.
+
+For more information about .mt and .mh files, see config/README.
The file <target>.c is the hard part. It implements the
bfd_target <target>_vec, which includes pointers to
make gen-aout
./gen-aout <target> > <target>.c
(This only works if you are building on the target ("native").
-If you must make a cross-port from scratch, copy the most
+If you must make a cross-port from scratch, copy the most
similar existing file that includes aout-target.h, and fix what is wrong.)
Check the parameters in <target>.c, and fix anything that is wrong.
Should be defined if <target> is big-endian.
N_HEADER_IN_TEXT(x)
- See discussion in ../include/aout/aout32.h.
+ See discussion in ../include/aout/aout64.h.
BYTES_IN_WORD
Number of bytes per word. (Usually 4 but can be 8.)
The address of the start of the text segemnt in
virtual memory. Normally, the same as the entry point.
-PAGE_SIZE
+TARGET_PAGE_SIZE
SEGMENT_SIZE
- Usually, the same as the PAGE_SIZE.
+ Usually, the same as the TARGET_PAGE_SIZE.
Alignment needed for the data segment.
TARGETNAME