Annotation of GNUtools/cctools/include/notes, revision 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.