]>
Commit | Line | Data |
---|---|---|
0e39a8bb RP |
1 | The coff patches intend to do the following : |
2 | ||
3 | . Generate coff files very compatible with vanilla linker. | |
4 | . Understands coff debug directives. | |
5 | ||
6 | Here are the guidelines of the work I have done : | |
7 | ||
8 | . Encapsulate format dependent code in macros where it is possible. | |
9 | . Where not possible differenciate with #ifdef | |
10 | . try not to change the calling conventions of the existing functions. | |
11 | I made one exception : symbol_new. I would be pleased to hear about | |
12 | a better solution. (symbols.c) | |
13 | . Extend the use of N_TYPE_seg seg_N_TYPE tables so that segments can | |
14 | be manipulated without using their format dependent name. (subsegs.c) | |
15 | . Write a function to parse the .def debug directives | |
16 | . Write two small peaces of code to handle the .ln directive. | |
17 | . In write.c try to move all the cross compilation specifics (md_..) to | |
18 | format dependent files. | |
19 | . Encapsulate the data structures using generic types, macros calls. | |
20 | . Added too much code to resolve the complexity of the symbol table | |
21 | generated. Most of the code deals with debug stuff. | |
22 | . Create another makefile, shorter, cleaner. | |
23 | . Create a config.gas shell script to mimic the gcc,gdb... configuration | |
24 | mechanism. This reduce the complexity of the makefile. | |
25 | . Isolate the format dependent code in two files | |
26 | coff.c coff.h | |
27 | aout.c aout.h | |
28 | elf.c elf.h [ Not yet ;-] | |
29 | . added a little stack management routine for coff in file stack.c | |
30 | . isolate os specific flags in m- files | |
31 | ||
32 | If further development is planed on it is should solve the following problems : | |
33 | ||
34 | . Encapsulate DESC & OTHER tests in a macro call. I'm not aware | |
35 | of their exact semantics. | |
36 | . Clean up the seg_N_TYPE N_TYPE_seg naming scheme | |
37 | . Try to remove as much reference to segment dependent names as possible | |
38 | . Find a cleaner solution for symbol_new. | |
39 | . Report the modifications on vax, ns32k, sparc machine dependent files. | |
40 | To acheive this goal, search for \<N_, sy_, symbol_new and symbolS. | |
41 | . Allow an arbitrary number of segments (spare sections .ctor .dtor .bletch) | |
42 | . Find a way to extend the debug information without breaking sdb | |
43 | compatibility. Mainly intended for G++. | |
44 | . should it do something to generate shared libraries objects ? | |
45 | ||
46 | I have tested this code on the following processor/os. gcc-1.37.1 was | |
47 | used for all the tests. | |
48 | ||
49 | 386 SCO unix ODT | |
50 | gcc-1.37.1, gas, emacs-18.55 | |
51 | ||
52 | 386 Esix rev C | |
53 | gas-1.37/write.s | |
54 | ||
55 | 386 Ix 2.02 | |
56 | gas, all the X11R4 mit clients | |
57 | ||
58 | 386 CTIX 3.2 | |
59 | xsol (X11R4 solitary game), gas | |
60 | ||
61 | 68030 unisoft 1.3 | |
62 | the kernel (V.3.2) + tcp/ip extensions | |
63 | bash-1.05, bison-1.11, compress-4.0, cproto, shar-3.49, diff-1.14, | |
64 | dist-18.55, flex-2.3, gas-1.37, gcc-1.37.1, gdb-3.6, grep-1.5, | |
65 | kermit, make-3.58, makedep, patch, printf, makeinfo, g++-1.37.1, | |
66 | tar-1.08, texi2roff, uuencode, uutraf-1.2, libg++-1.37.2, groff-0.5 | |
67 | ||
68 | 68020 sunos 3.5 (no, not coff, just to be sure that I didn't | |
69 | introduce errors) | |
70 | gcc-1.37.1, gas, emacs-18.55, gdb-3.6, bison-1.11, diff-1.14, | |
71 | make-3.58, tar-1.08 | |
72 | ||
73 | 68030 sunos 4.0.3 (idem) | |
74 | gas | |
75 | ||
76 | I would be glad to hear about new experiences | |
77 | ||
78 | Loic ([email protected] or [email protected]) | |
79 |