Annotation of GNUtools/cctools/include/notes, revision 1.1.1.1

1.1       root        1: Changes for the 4.0 release (the cctools-133 release):
                      2: - Picked up sparc changes to architecture/sparc/reg.h.
                      3: - Picked up sparc changes to mach/sparc/thread_status.h.
                      4: - Picked up sparc changes to stuff/bytesex.h for prototype of
                      5:   swap_sparc_thread_state_fpu().
                      6: - Picked up sparc changes to mach-o/sparc/reloc.h.
                      7: 
                      8: Changes for the 4.0 release (the cctools-132 release):
                      9: - Removed the 2.0 compatiblity header files.
                     10: - Picked up the files mach/sparc/thread_status.h and architecture/sparc/reg.h
                     11: 
                     12: Changes for the 3.3 release (the cctools-125 release):
                     13: - Picked up installing 2.0Compatiblity/sys/loader.h
                     14: - Added installing nlist.h stab.h loader.h fat.h (bug #31334).
                     15: 
                     16: Changes for the 3.3 release (the cctools-120 release):
                     17: - Added the file <mach-o/dyld.h>
                     18: 
                     19: Changes for the 3.3 release (the cctools-119 release):
                     20: - Picked up the first changes for sparc (sparc/reloc.h) the work is not
                     21:   complete.
                     22: 
                     23: Changes for the 3.3 release (the cctools-104 release):
                     24: - Changed the name of the first parameter of swap_ident_command() from id to
                     25:   id_cmd (in bytesex.h).  The compiler is treating this as a reserved word.
                     26: 
                     27: Changes for the 3.3 release (the cctools-102 release):
                     28: - Integrated in the hppa support.
                     29: different include/Makefile (integrated for cctools-102)
                     30:     Using cctoolshppa-37. mach-o/hppa/reloc.h is new.
                     31: different include/gnu/a.out.h (integrated for cctools-102)
                     32:     Using cctoolshppa-37.  Added:
                     33:        #ifdef HPPA
                     34:        #include "mach-o/hppa/reloc.h"
                     35:        #endif
                     36: different include/mach/machine.h (integrated for cctools-102)
                     37:     Using cctoolshppa-37.  New constants for hppa and badly integrated the
                     38:     existing contants:
                     39:        #define CPU_TYPE_ANY                    ((cpu_type_t) -1)
                     40:        #define CPU_SUBTYPE_MULTIPLE            ((cpu_subtype_t) -1)
                     41:        #define CPU_SUBTYPE_LITTLE_ENDIAN       ((cpu_subtype_t) 0)
                     42:        #define CPU_SUBTYPE_BIG_ENDIAN          ((cpu_subtype_t) 1)
                     43:     which were scattered though out the file and moved from their comment.
                     44:     Email sent to Josh on this one (who forwarded it to Mac).
                     45: different include/stuff/bytesex.h (integrated for cctools-102)
                     46:     Using cctoolshppa-37.  New routines for swaping hppa's threads.
                     47: Only in cctoolshppa-37/include/mach: hppa (integrated for cctools-102)
                     48:     Pick up include/mach/hppa/thread_status.h from cctoolshppa-37.
                     49: Only in cctoolshppa-37/include/mach-o: hppa (integrated for cctools-102)
                     50:     Pick up include/mach-o/hppa/reloc.h from cctoolshppa-37.  But has
                     51:     HPPA_RELOC_NORELOC which is used in hppa.c.  HPPA_RELOC_NORELOC pulled
                     52:     from reloc.h and NO_RELOC defined as 0x10 (out side the range of r_type:4)
                     53:     in hppa.h and NO_RELOC used in hppa.c.
                     54: 
                     55: Changes for the 3.1 release (the cctools-22 release):
                     56: - Added to mach/machine.h the following cpp macros (bug #32553):
                     57:        #define CPU_TYPE_ANY                    ((cpu_type_t) -1)
                     58:        #define CPU_SUBTYPE_LITTLE_ENDIAN       ((cpu_subtype_t) 0)
                     59:        #define CPU_SUBTYPE_BIG_ENDIAN          ((cpu_subtype_t) 1)
                     60: 
                     61: Changes for the 3.1 release (the cctools-15 release):
                     62: - Picked up the proper mach/m98k/thread_status.h and the six included files
                     63:   to make it compile.
                     64: 
                     65: Changes for the 3.1 release (the cctools-13 release):
                     66: - Added the m98k (PowerPC) architecture.  This includes a kludged
                     67:   mach/m98k/thread_status.h with only an entry point.
                     68: 
                     69: Changes for the 3.1 release (the cctools-6 release):
                     70: - Changed mach/i386/thread_status.h so the m68k compiler will compile this the
                     71:   same as the i386 compiler.  The change was to change the "unsigned int :0" to
                     72:   "unsigned short pad_??".
                     73: 
                     74: Changes for the 3.1 release (the cctools-5 release):
                     75: - Picked up the lono teams cctools-4_2 mach/i386/thread_status.h as well as
                     76:   machdep/i386/frame.h machdep/i386/fpregs.h machdep/i386/sel.h .
                     77: - Changed "struct i386_thread_state *cpu," to "i386_thread_state_t *cpu,"
                     78:   in bytesex.h for the lono team.
                     79: 
                     80: Changes for the 3.1 release (the cctools-4 release):
                     81: - Moved the ix86 directory to i386.
                     82: 
                     83: Changes for the 3.0 release (the -56 compiler release):
                     84: - Fixed some typos in mach-o/reloc.h in the __LITTLE_ENDIAN__ code (bug #19639).
                     85: 
                     86: Changes for the 3.0 release (the -53 compiler release):
                     87: - Removed the local copy of mach/m88k/thread_status.h .
                     88: 
                     89: Changes for the 3.0 release (the -47 compiler release):
                     90: - Split of the reloc.h header file:
                     91:   part of mach-o/reloc.h -> mach-o/m88k/reloc.h
                     92:   part of mach-o/reloc.h -> mach-o/i860/reloc.h
                     93: - Switch over to the newer header file organization.
                     94:   m88k/mach/thread_status.h -> mach/m88k/thread_status.h
                     95:   ix86/mach/thread_status.h -> mach/ix86/thread_status.h
                     96:   i860/mach/thread_status.h -> mach/i860/thread_status.h
                     97:   m88k/disasm.h -> mach-o/m88k/disasm.h
                     98:   m88k/parseinst.h -> mach-o/m88k/parseinst.h
                     99: 
                    100: Changes for the 3.0 release (the -44 compiler release):
                    101: - Switch over to the new header file organization.
                    102: 
                    103: Changes for the 3.0 release (the -36 compiler release):
                    104: - Added the 88k disassembler header file but these are not installed.
                    105: 
                    106: Changes for the 3.0 release (the -34 compiler release):
                    107: - Added installsrc, installIBMsrc and installGNUsrc targets to the Makefile.
                    108: 
                    109: Changes for the 3.0 release (the -33 compiler release):
                    110: - sys/machine.h:  (this is owned by the OS group and will be given back to them)
                    111:      * 16-Oct-90  Compiler group (comp) at NeXT.
                    112:      * Replaced the 88k cpu_subtype CPU_SUBTYPE_MMAX_JPC with 
                    113:      * CPU_SUBTYPE_MC88100 and CPU_SUBTYPE_MC88110 to match 68k types.
                    114: 
                    115:     /*
                    116:      * MC88000 subtypes
                    117:      */
                    118:     #define CPU_SUBTYPE_MC88100                ((cpu_subtype_t) 1) 
                    119:     #define CPU_SUBTYPE_MC88110                ((cpu_subtype_t) 2) 
                    120: 
                    121: 
                    122:     The I860 CPU type in the NDTools 7 conflicts with the CPU_TYPE_I386 which is
                    123:     also 7.  In talking with Mike Paquette (10/16/90) he said it is ok to change
                    124:     CPU_TYPE_I860 to whatever and he will recompile NextDimention.
                    125:     The three I860 additions were as follows:
                    126: 
                    127:      * 16-Aug-89  Mike Paquette (mpaque) at NeXT
                    128:      * Added I860 CPU type and subtypes for big or little-endian data
                    129:      * implementation.
                    130: 
                    131:     #define CPU_TYPE_I860              ((cpu_type_t) 7) <<<will be 14>>>
                    132: 
                    133:     /*
                    134:      * I860 subtypes
                    135:      */
                    136:     #define CPU_SUBTYPE_LITTLE_ENDIAN  ((cpu_subtype_t) 0)
                    137:     #define CPU_SUBTYPE_BIG_ENDIAN             ((cpu_subtype_t) 1)
                    138: 
                    139: - machine/thread_status.h: where "machine" is a symbolic link to "next"
                    140:   (this is owned by the OS group and will be given back to them)
                    141:     In talking to Mike DeMoney on (10/16/90) he came up with the following
                    142:     structure to handle the multiple machines specific files.  These would
                    143:     be the directories in /usr/include (or in the kernel's header file area):
                    144: 
                    145:        next68k/   was just next/
                    146:        next88k/
                    147:        next860/
                    148: 
                    149:     A symbolic link from "next to "next" will be added for compatiblity and
                    150:     the symbolic "machine" will point to the directory the kernel is configured
                    151:     for.
                    152: 
                    153: - next860/thread_status.h:
                    154:     This is to be owned by someone like Mike Paquette.  It is the file that
                    155:     discrbes JUST the i860 thread state.
                    156: 
                    157: - next88k/thread_status.h:
                    158:     This is to be owned by the OS group.  The compiler group made a first
                    159:     cut at it.
                    160: 
                    161: Changes for the Warp ?? release (the -25 compiler release):
                    162: - Added the scattered_relocation_info struct to reloc.h
                    163: 
                    164: Changes for the Warp ?? release (the -24 compiler release):
                    165: - Added #import <sys/loader.h> to ldsyms.h (bug 6031).
                    166: - Added rld.h to be installed in /usr/include.
                    167: 
                    168: Changes for the 2.0 impulse X.X release (the -19 compiler release):
                    169: - Updated ldsyms.h to match the new link editor.  Basicly removing lots of old
                    170:   stuff.
                    171: - Added one missing ';' in symseg.h to get rid of a warning.
                    172: - Removed the temporay copies of <ranlib.h> and  <sys/loader.h> now that the
                    173:   Impulse 0.02 release has the right versions.
                    174: - Added temporary copies of <nlist.h> and <sys/machine.h> until the next libc
                    175:   and mk projects get released and the correct versions are in /usr/include.
                    176: 
                    177: Changes for the 0.93 release (the -12 compiler release):
                    178: - No longer install symseg.h
                    179: - Now own sys/exec.h as a part of a.out.h
                    180: 
                    181: Changes for the 0.82 release (the -8 compiler release):
                    182: - Changed the Makefile to install in /usr/include
                    183: 
                    184: Changes for the 0.82 release (the -7 compiler release):
                    185: - Added header_addr to fvmlib load and id commands.
                    186: - Added the SEG_PAGEZERO segment name to sys/loader.h for the segment created
                    187:   to protect page zero for NULL pointers.
                    188: 
                    189: Changes for the 0.81 release (the -6 compiler release):
                    190: - The following files to reflect what is contained in a true mach-O object
                    191:   file (relocatables and other formats):
                    192:        nlist.h
                    193:        reloc.h (new)
                    194:        symseg.h
                    195:        stab.h
                    196:   These along with <sys/loader.h> are now the offical files that mach-O object
                    197:   tools should reference.  The file <a.out.h> has been updated with the same
                    198:   changes but will go away in the 1.0 release or renamed to <a.out.h.old>.  
                    199: 
                    200:   The logical changes are as follows:
                    201: 
                    202:   To the nlist structure (also see comments in <nlist.h> and <stab.h>):
                    203: 
                    204:     The modifications from the original format were changing n_other (an unused
                    205:     field) to n_sect and the addition of the N_SECT type.   All mach-O symbols
                    206:     defined a section (for example what use to be N_TEXT, N_DATA and N_BSS) now
                    207:     have the type N_SECT.
                    208: 
                    209:     If the type is N_SECT then the n_sect field contains an ordinal of the
                    210:     section the symbol is defined in.  The sections are numbered from 1 and 
                    211:     refer to sections in order they appear in the load commands for the file
                    212:     they are in.  This means the same ordinal may very well refer to different
                    213:     sections in different files.
                    214:   
                    215:     The n_value field for all symbol table entries (including N_STAB's) gets
                    216:     updated by the link editor based on the value of it's n_sect field and where
                    217:     the section n_sect references gets relocated.  If the value of the n_sect 
                    218:     field is NO_SECT then it's n_value field is not changed by the link editor.
                    219:     The comments in <stab.h> have been updated to reflect this.
                    220: 
                    221:     Common symbols are represented by undefined (N_UNDF) external (N_EXT) types
                    222:     who's values (n_value) are non-zero.  In which case the value of the n_value
                    223:     field is the size (in bytes) of the common symbol.
                    224: 
                    225:     Absolute, undefined and common symbols are NOT in any section and thus their
                    226:     n_sect field must be NO_SECT to indicate this and avoid having their n_value
                    227:     field changed.
                    228: 
                    229:   To the relocation_info structure (see the comments in <reloc.h>):
                    230: 
                    231:     The modifications from the original format were changing the value
                    232:     of the r_symbolnum field for "local" (r_extern == 0) relocation entries.
                    233: 
                    234:     In 4.3bsd a.out objects if r_extern is zero then r_symbolnum is an ordinal
                    235:     for the segment the symbol being relocated is in.  These ordinals are the
                    236:     symbol types N_TEXT, N_DATA, N_BSS or N_ABS.  In mach-O object files these
                    237:     ordinals refer to the sections in the object file they are in.  The first
                    238:     section has the ordinal 1, the second 2, and so on.  This means that the
                    239:     same ordinal in two different object files could refer to two different
                    240:     sections.  And further could have still different ordinals when combined
                    241:     by the link-editor.  The value R_ABS is used for relocation entries for
                    242:     absolute symbols which need no further relocation.
                    243: 
                    244:   To the symseg structures (see the comments in <symseg.h>):
                    245: 
                    246:     To handle an arbitrary number of segments and sections the symbol_root,
                    247:     the indirect_root and the shlib_root have new structures in a mach-O
                    248:     object file.  The change to these structures was to replace the fields
                    249:     relating to where a segment was loaded with a load map.
                    250: 
                    251:     The load map describes where the parts the relocatable object have been
                    252:     loaded in the executable.  The enitre address space of the relocatable
                    253:     is to be covered by all the map entries.  There may be multiple map entries
                    254:     for a single section or one map entry for multiple sections.  This allows
                    255:     the link editor to scatter load a section based on information that improves
                    256:     performance by increasing the locality of reference.
                    257: 
                    258: - The N_INDR symbol type was added for indirect symbols (to support building
                    259:   the ANSI C library).
                    260: 
                    261:     If the type is N_INDR then the symbol is defined to be the same as another
                    262:     symbol.  In this case the n_value field is an index into the string table
                    263:     of the other symbol's name.  When the other symbol is defined then they both
                    264:     take on the defined type and value.
                    265: 
                    266: - Changed the loader defined symbol names _etext, _edata, and _end to __etext,
                    267:   __edata, __end so not to pollute the name space of ANSI C programs.  There
                    268:   are now macros for these symbols.  The ANSI C library will have objects with
                    269:   indirect symbols so that old names will still work if the program is linked
                    270:   with the ANSI C library.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.