|
|
1.1 ! root 1: ! 2: ! 3: l.out.h Header File l.out.h ! 4: ! 5: ! 6: ! 7: ! 8: Object file format ! 9: ! 10: #include <l.out.h> ! 11: ! 12: The header file l.out.h describes the format for the output of ! 13: compilers, assemblers, and the linker. ! 14: ! 15: The assembler outputs an unlinked object module, which must be ! 16: bound with any required libraries (leaving no unresolved symbols) ! 17: to produce an executable file, or load module. A call to one of ! 18: the exec routines can then execute the load module directly. ! 19: ! 20: The link module begins with a header, which gives global and size ! 21: information about each segment. Segments of the indicated size ! 22: follow the header in a fixed order. The header file l.out.h ! 23: defines the header structure for the Z8000 and M68000 as follows: ! 24: ! 25: ! 26: struct ldheader { ! 27: short l_magic; ! 28: short l_flag; ! 29: short l_machine; ! 30: short l_tbase; ! 31: size_t l_ssize[NLSEG]; ! 32: long l_entry; ! 33: }; ! 34: ! 35: ! 36: It describes the header structure for the i8086, i8088, i80286, ! 37: and PDP-11 as follows: ! 38: ! 39: ! 40: struct ldheader { ! 41: int l_magic; ! 42: int l_flag; ! 43: int l_machine; ! 44: vaddr_t l_entry; ! 45: size_t l_ssize[NLSEG]; ! 46: }; ! 47: ! 48: ! 49: l_magic is the magic number that identifies a link module; it al- ! 50: ways contains L_MAGIC. l_flag contains flags indicating the type ! 51: of the object. l_machine is the processor identifier, as defined ! 52: in the header file mtype.h. l_tbase is the start of the text ! 53: segment. l_entry contains the machine address where execution of ! 54: the module commences. l_ssize gives the size of each segment. ! 55: ! 56: ***** Files ***** ! 57: ! 58: ll.oouutt -- Default load module name ! 59: <l.out.h> ! 60: <mmttyyppee.hh> -- Machine identifiers ! 61: ! 62: ! 63: ! 64: COHERENT Lexicon Page 1 ! 65: ! 66: ! 67: ! 68: ! 69: l.out.h Header File l.out.h ! 70: ! 71: ! 72: ! 73: ***** See Also ***** ! 74: ! 75: as, cc, COHERENT system calls, core, exec, ld, mtype, nm ! 76: ! 77: ***** Notes ***** ! 78: ! 79: In the early releases of COHERENT, the header structure was ! 80: defined only as shown above for i8086. It was changed to handle ! 81: 32-bit addresses. In the future, the header structure defined ! 82: above for Z8000 and M68000 machines will be implemented on i8086 ! 83: and i80286 systems as well. ! 84: ! 85: ! 86: ! 87: ! 88: ! 89: ! 90: ! 91: ! 92: ! 93: ! 94: ! 95: ! 96: ! 97: ! 98: ! 99: ! 100: ! 101: ! 102: ! 103: ! 104: ! 105: ! 106: ! 107: ! 108: ! 109: ! 110: ! 111: ! 112: ! 113: ! 114: ! 115: ! 116: ! 117: ! 118: ! 119: ! 120: ! 121: ! 122: ! 123: ! 124: ! 125: ! 126: ! 127: ! 128: ! 129: ! 130: COHERENT Lexicon Page 2 ! 131: ! 132:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.