This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
xcoff64 include-coff-rs6k64.h.patch
- To: "binutils" <binutils at sources dot redhat dot com>
- Subject: xcoff64 include-coff-rs6k64.h.patch
- From: "Tom Rix" <trix at redhat dot com>
- Date: Mon, 29 Jan 2001 13:40:02 -0600
rs6k64.h : xcoff64 specific structures and magic numbers moved rs6k64.h
(struct external_scnhdr) fix l_symndx
(struct external_lineno) remove useless union
----------------------------------------------------------------------------
--
diff -rcp sources-original/src/include/coff/rs6k64.h
sources/src/include/coff/rs6k64.h
*** sources-original/src/include/coff/rs6k64.h Sat Jan 20 00:28:30 2001
--- sources/src/include/coff/rs6k64.h Mon Jan 22 14:25:19 2001
*************** AOUTHDR;
*** 57,67 ****
#define SMALL_AOUTSZ (0)
#define AOUTHDRSZ 72
- #define RS6K_AOUTHDR_OMAGIC 0x0107 /* old: text & data writeable */
- #define RS6K_AOUTHDR_NMAGIC 0x0108 /* new: text r/o, data r/w */
- #define RS6K_AOUTHDR_ZMAGIC 0x010B /* paged: text r/o, both page-aligned
*/
-
-
/********************** SECTION HEADER **********************/
--- 57,62 ----
*************** struct external_scnhdr {
*** 79,107 ****
char s_pad[4]; /* padding */
};
- /*
- * names of "special" sections
- */
- #define _TEXT ".text"
- #define _DATA ".data"
- #define _BSS ".bss"
- #define _PAD ".pad"
- #define _LOADER ".loader"
#define SCNHDR struct external_scnhdr
#define SCNHSZ 72
- /* XCOFF uses a special .loader section with type STYP_LOADER. */
- #define STYP_LOADER 0x1000
-
- /* XCOFF uses a special .debug section with type STYP_DEBUG. */
- #define STYP_DEBUG 0x2000
-
- /* XCOFF handles line number or relocation overflow by creating
- another section header with STYP_OVRFLO set. */
- #define STYP_OVRFLO 0x8000
-
/********************** LINE NUMBERS **********************/
/* 1 line number entry for every "breakpointable" source line in a
section.
--- 74,84 ----
*************** struct external_scnhdr {
*** 111,117 ****
*/
struct external_lineno {
union {
! char l_symndx[8];/* function name symbol index, iff l_lnno == 0*/
char l_paddr[8]; /* (physical) address of line number */
} l_addr;
char l_lnno[4]; /* line number */
--- 88,94 ----
*/
struct external_lineno {
union {
! char l_symndx[4];/* function name symbol index, iff l_lnno == 0*/
char l_paddr[8]; /* (physical) address of line number */
} l_addr;
char l_lnno[4]; /* line number */
*************** struct external_lineno {
*** 131,139 ****
struct external_syment
{
! union {
! char e_value[8];
! } e;
char e_offset[4];
char e_scnum[2];
char e_type[2];
--- 108,114 ----
struct external_syment
{
! char e_value[8];
char e_offset[4];
char e_scnum[2];
char e_type[2];
*************** struct external_reloc {
*** 234,236 ****
--- 209,252 ----
#define DEFAULT_TEXT_SECTION_ALIGNMENT 4
/* For new sections we havn't heard of before */
#define DEFAULT_SECTION_ALIGNMENT 4
+
+ /* The ldhdr structure. This appears at the start of the .loader
+ section. */
+
+ struct external_ldhdr
+ {
+ bfd_byte l_version[4];
+ bfd_byte l_nsyms[4];
+ bfd_byte l_nreloc[4];
+ bfd_byte l_istlen[4];
+ bfd_byte l_nimpid[4];
+ bfd_byte l_stlen[4];
+ bfd_byte l_impoff[8];
+ bfd_byte l_stoff[8];
+ bfd_byte l_symoff[8];
+ bfd_byte l_rldoff[8];
+ };
+ #define LDHDRSZ (56)
+
+ struct external_ldsym
+ {
+ bfd_byte l_value[8];
+ bfd_byte l_offset[4];
+ bfd_byte l_scnum[2];
+ bfd_byte l_smtype[1];
+ bfd_byte l_smclas[1];
+ bfd_byte l_ifile[4];
+ bfd_byte l_parm[4];
+ };
+
+ #define LDSYMSZ (24)
+
+ struct external_ldrel
+ {
+ bfd_byte l_vaddr[8];
+ bfd_byte l_rtype[2];
+ bfd_byte l_rsecnm[2];
+ bfd_byte l_symndx[4];
+ };
+
+ #define LDRELSZ (16)