RIP gzip, we found a nicer playmate.
[dragonfly.git] / gnu / usr.bin / as / NOTES.config
1 (This file under construction).
2
3
4                       The GAS Configuration Plan
5
6 Theory:
7
8 The goal of the new configuration scheme is to bury all object format,
9 target processor, and host machine dependancies in object, target, and
10 host specific files.  That is, to move as many #ifdef's as possible
11 out of the gas common code.
12
13 Here's how it works.  There is a .h and a .c file for each object file
14 format, a .h and a .c file for each target processor, and a .h for
15 each host.  configure creates {sym}links in the current directory to
16 the appropriate files in the config directory.
17
18 Implementation:
19
20 host.h is a {sym}link to .../config/ho-yourhost.h.  It is intended to
21 be used to hide host compiler, system header file, and system library
22 differences between host machines.  If your host needs actual c source
23 files, then either: these are generally useful functions, in which
24 case you should probably build a local library outside of the gas
25 source tree, or someone, perhaps me, is confused about what is needed
26 by different hosts.
27
28 obj-format.h is a {sym}link to .../config/obj-something.h.  It is
29 intended to hide object file format differences from the bulk of gas,
30 and from most of the cpu backend.
31
32 All gas .c files include as.h.
33
34 as.h #define's "gas", includes host.h, defines a number of gas
35 specific structures and types, and then includes tp.h, obj.h, and
36 target-environment.h.
37
38 te-something.h defines a target environment specific preprocessor
39 flag, eg, TE_SUN, and then includes obj-format.h.
40
41 obj-format.h defines an object format specific preprocessor flag, eg,
42 OBJ_AOUT, OBJ_BOUT, OBJ_COFF, includes "target-processor.h", and then
43 defines the object specific macros, functions, types, and structures.
44
45 target-processor.h 
46
47 target-processor.
48
49 Porting:
50
51 There appear to be four major types of ports; new hosts, new target
52 processors, new object file formats, and new target environments.