133965Sjdp/* This file is aout_gnu.h 233965Sjdp 3218822Sdim Copyright 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 2000, 2002 478828Sobrien Free Software Foundation, Inc. 533965Sjdp 633965Sjdp This file is part of GAS, the GNU Assembler. 733965Sjdp 833965Sjdp GAS is free software; you can redistribute it and/or modify 933965Sjdp it under the terms of the GNU General Public License as published by 1033965Sjdp the Free Software Foundation; either version 2, or (at your option) 1133965Sjdp any later version. 1233965Sjdp 1333965Sjdp GAS is distributed in the hope that it will be useful, 1433965Sjdp but WITHOUT ANY WARRANTY; without even the implied warranty of 1533965Sjdp MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1633965Sjdp GNU General Public License for more details. 1733965Sjdp 1833965Sjdp You should have received a copy of the GNU General Public License 1933965Sjdp along with GAS; see the file COPYING. If not, write to 20218822Sdim the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ 2133965Sjdp 2233965Sjdp#ifndef __A_OUT_GNU_H__ 2333965Sjdp#define __A_OUT_GNU_H__ 2433965Sjdp 2533965Sjdp/* There are two main flavours of a.out, one which uses the standard 2633965Sjdp relocations, and one which uses extended relocations. 2733965Sjdp 2833965Sjdp Today, the extended reloc uses are 29218822Sdim TC_SPARC 3033965Sjdp 3133965Sjdp each must define the enum reloc_type 3233965Sjdp 3333965Sjdp*/ 3433965Sjdp 35218822Sdim#define USE_EXTENDED_RELOC defined(TC_SPARC) 3633965Sjdp 37218822Sdim#if defined(TC_SPARC) 3833965Sjdpenum reloc_type 3933965Sjdp { 4033965Sjdp RELOC_8, RELOC_16, RELOC_32,/* simple relocations */ 4133965Sjdp RELOC_DISP8, RELOC_DISP16, RELOC_DISP32, /* pc-rel displacement */ 4233965Sjdp RELOC_WDISP30, RELOC_WDISP22, 4333965Sjdp RELOC_HI22, RELOC_22, 4433965Sjdp RELOC_13, RELOC_LO10, 4533965Sjdp RELOC_SFA_BASE, RELOC_SFA_OFF13, 4633965Sjdp RELOC_BASE10, RELOC_BASE13, RELOC_BASE22, /* P.I.C. (base-relative) */ 4733965Sjdp RELOC_PC10, RELOC_PC22, /* for some sort of pc-rel P.I.C. (?) */ 4833965Sjdp RELOC_JMP_TBL, /* P.I.C. jump table */ 4933965Sjdp RELOC_SEGOFF16, /* reputedly for shared libraries somehow */ 5033965Sjdp RELOC_GLOB_DAT, RELOC_JMP_SLOT, RELOC_RELATIVE, 5133965Sjdp RELOC_10, RELOC_11, 5233965Sjdp RELOC_WDISP2_14, 5333965Sjdp RELOC_WDISP19, 5433965Sjdp RELOC_HHI22, 5533965Sjdp RELOC_HLO10, 5633965Sjdp 5733965Sjdp /* 29K relocation types */ 5833965Sjdp RELOC_JUMPTARG, RELOC_CONST, RELOC_CONSTH, 5933965Sjdp 6033965Sjdp RELOC_WDISP14, RELOC_WDISP21, 6133965Sjdp 6233965Sjdp NO_RELOC 6333965Sjdp }; 6433965Sjdp 65218822Sdim#endif /* TC_SPARC */ 6633965Sjdp 6733965Sjdp#define __GNU_EXEC_MACROS__ 6833965Sjdp 6933965Sjdp#ifndef __STRUCT_EXEC_OVERRIDE__ 7033965Sjdp 7133965Sjdp/* This is the layout on disk of a Unix V7, Berkeley, SunOS, Vax Ultrix 7233965Sjdp "struct exec". Don't assume that on this machine, the "struct exec" 7333965Sjdp will lay out the same sizes or alignments. */ 7433965Sjdp 7533965Sjdpstruct exec_bytes 7633965Sjdp { 7733965Sjdp unsigned char a_info[4]; 7833965Sjdp unsigned char a_text[4]; 7933965Sjdp unsigned char a_data[4]; 8033965Sjdp unsigned char a_bss[4]; 8133965Sjdp unsigned char a_syms[4]; 8233965Sjdp unsigned char a_entry[4]; 8333965Sjdp unsigned char a_trsize[4]; 8433965Sjdp unsigned char a_drsize[4]; 8533965Sjdp }; 8633965Sjdp 8733965Sjdp/* How big the "struct exec" is on disk */ 8833965Sjdp#define EXEC_BYTES_SIZE (8 * 4) 8933965Sjdp 9033965Sjdp/* This is the layout in memory of a "struct exec" while we process it. */ 9133965Sjdp 9233965Sjdpstruct exec 9333965Sjdp{ 9433965Sjdp unsigned long a_info; /* Use macros N_MAGIC, etc for access */ 9533965Sjdp unsigned a_text; /* length of text, in bytes */ 9633965Sjdp unsigned a_data; /* length of data, in bytes */ 9733965Sjdp unsigned a_bss; /* length of uninitialized data area for file, in bytes */ 9833965Sjdp unsigned a_syms; /* length of symbol table data in file, in bytes */ 9933965Sjdp unsigned a_entry; /* start address */ 10033965Sjdp unsigned a_trsize; /* length of relocation info for text, in bytes */ 10133965Sjdp unsigned a_drsize; /* length of relocation info for data, in bytes */ 10233965Sjdp}; 10333965Sjdp 10433965Sjdp#endif /* __STRUCT_EXEC_OVERRIDE__ */ 10533965Sjdp 10633965Sjdp/* these go in the N_MACHTYPE field */ 10733965Sjdp/* These symbols could be defined by code from Suns...punt 'em */ 10833965Sjdp#undef M_UNKNOWN 10933965Sjdp#undef M_68010 11033965Sjdp#undef M_68020 11133965Sjdp#undef M_SPARC 11233965Sjdpenum machine_type 11333965Sjdp { 11433965Sjdp M_UNKNOWN = 0, 11533965Sjdp M_68010 = 1, 11633965Sjdp M_68020 = 2, 11733965Sjdp M_SPARC = 3, 11833965Sjdp /* skip a bunch so we don't run into any of sun's numbers */ 11933965Sjdp M_386 = 100, 12033965Sjdp M_29K = 101, 12133965Sjdp M_RS6000 = 102, /* IBM RS/6000 */ 122104834Sobrien M_VAX4K_NETBSD = 150, 12333965Sjdp /* HP/BSD formats */ 12433965Sjdp M_HP200 = 200, /* hp200 (68010) BSD binary */ 12533965Sjdp M_HP300 = 300, /* hp300 (68020+68881) BSD binary */ 12633965Sjdp M_HPUX23 = 0x020C /* hp200/300 HPUX binary */ 12733965Sjdp }; 12833965Sjdp 12933965Sjdp#define N_MAGIC(exec) ((exec).a_info & 0xffff) 13033965Sjdp#define N_MACHTYPE(exec) ((enum machine_type)(((exec).a_info >> 16) & 0xff)) 13133965Sjdp#define N_FLAGS(exec) (((exec).a_info >> 24) & 0xff) 13233965Sjdp#define N_SET_INFO(exec, magic, type, flags) \ 13333965Sjdp ((exec).a_info = ((magic) & 0xffff) \ 13433965Sjdp | (((int)(type) & 0xff) << 16) \ 13533965Sjdp | (((flags) & 0xff) << 24)) 13633965Sjdp#define N_SET_MAGIC(exec, magic) \ 13733965Sjdp ((exec).a_info = (((exec).a_info & 0xffff0000) | ((magic) & 0xffff))) 13833965Sjdp 13933965Sjdp#define N_SET_MACHTYPE(exec, machtype) \ 14033965Sjdp ((exec).a_info = \ 14133965Sjdp ((exec).a_info&0xff00ffff) | ((((int)(machtype))&0xff) << 16)) 14233965Sjdp 14333965Sjdp#define N_SET_FLAGS(exec, flags) \ 14433965Sjdp ((exec).a_info = \ 14533965Sjdp ((exec).a_info&0x00ffffff) | (((flags) & 0xff) << 24)) 14633965Sjdp 14733965Sjdp/* Code indicating object file or impure executable. */ 14833965Sjdp#ifndef OMAGIC 14933965Sjdp#define OMAGIC 0407 15033965Sjdp#endif 15133965Sjdp/* Code indicating pure executable. */ 15233965Sjdp#define NMAGIC 0410 15333965Sjdp/* Code indicating demand-paged executable. */ 15433965Sjdp#define ZMAGIC 0413 15533965Sjdp 15633965Sjdp/* Virtual Address of text segment from the a.out file. For OMAGIC, 15733965Sjdp (almost always "unlinked .o's" these days), should be zero. 15833965Sjdp For linked files, should reflect reality if we know it. */ 15933965Sjdp 16033965Sjdp#ifndef N_TXTADDR 16133965Sjdp#define N_TXTADDR(x) (N_MAGIC(x)==OMAGIC? 0 : TEXT_START_ADDR) 16233965Sjdp#endif 16333965Sjdp 16433965Sjdp#ifndef N_BADMAG 16533965Sjdp#define N_BADMAG(x) (N_MAGIC(x) != OMAGIC \ 16633965Sjdp && N_MAGIC(x) != NMAGIC \ 16733965Sjdp && N_MAGIC(x) != ZMAGIC) 16833965Sjdp#endif 16933965Sjdp 17033965Sjdp/* By default, segment size is constant. But on some machines, it can 17133965Sjdp be a function of the a.out header (e.g. machine type). */ 17233965Sjdp#ifndef N_SEGSIZE 17333965Sjdp#define N_SEGSIZE(x) SEGMENT_SIZE 17433965Sjdp#endif 17533965Sjdp 17633965Sjdp/* This complexity is for encapsulated COFF support */ 17733965Sjdp#ifndef _N_HDROFF 17833965Sjdp#define _N_HDROFF(x) (N_SEGSIZE(x) - sizeof (struct exec)) 17933965Sjdp#endif 18033965Sjdp 18133965Sjdp#ifndef N_TXTOFF 18233965Sjdp#define N_TXTOFF(x) (N_MAGIC(x) == ZMAGIC ? \ 18333965Sjdp _N_HDROFF((x)) + sizeof (struct exec) : \ 18433965Sjdp sizeof (struct exec)) 18533965Sjdp#endif 18633965Sjdp 18733965Sjdp#ifndef N_DATOFF 18833965Sjdp#define N_DATOFF(x) ( N_TXTOFF(x) + (x).a_text ) 18933965Sjdp#endif 19033965Sjdp 19133965Sjdp#ifndef N_TRELOFF 19233965Sjdp#define N_TRELOFF(x) ( N_DATOFF(x) + (x).a_data ) 19333965Sjdp#endif 19433965Sjdp 19533965Sjdp#ifndef N_DRELOFF 19633965Sjdp#define N_DRELOFF(x) ( N_TRELOFF(x) + (x).a_trsize ) 19733965Sjdp#endif 19833965Sjdp 19933965Sjdp#ifndef N_SYMOFF 20033965Sjdp#define N_SYMOFF(x) ( N_DRELOFF(x) + (x).a_drsize ) 20133965Sjdp#endif 20233965Sjdp 20333965Sjdp#ifndef N_STROFF 20433965Sjdp#define N_STROFF(x) ( N_SYMOFF(x) + (x).a_syms ) 20533965Sjdp#endif 20633965Sjdp 20733965Sjdp/* Address of text segment in memory after it is loaded. */ 20833965Sjdp#ifndef N_TXTADDR 20933965Sjdp#define N_TXTADDR(x) 0 21033965Sjdp#endif 21133965Sjdp 21233965Sjdp#ifndef N_DATADDR 21333965Sjdp#define N_DATADDR(x) \ 21433965Sjdp (N_MAGIC(x)==OMAGIC? (N_TXTADDR(x)+(x).a_text) \ 21533965Sjdp : (N_SEGSIZE(x) + ((N_TXTADDR(x)+(x).a_text-1) & ~(N_SEGSIZE(x)-1)))) 21633965Sjdp#endif 21733965Sjdp 21833965Sjdp/* Address of bss segment in memory after it is loaded. */ 21933965Sjdp#define N_BSSADDR(x) (N_DATADDR(x) + (x).a_data) 22033965Sjdp 22133965Sjdpstruct nlist 22233965Sjdp { 22333965Sjdp union 22433965Sjdp { 22533965Sjdp char *n_name; 22633965Sjdp struct nlist *n_next; 22733965Sjdp long n_strx; 22833965Sjdp } 22933965Sjdp n_un; 23033965Sjdp unsigned char n_type; 23133965Sjdp char n_other; 23233965Sjdp short n_desc; 23333965Sjdp unsigned long n_value; 23433965Sjdp }; 23533965Sjdp 23633965Sjdp#define N_UNDF 0 23733965Sjdp#define N_ABS 2 23833965Sjdp#define N_TEXT 4 23933965Sjdp#define N_DATA 6 24033965Sjdp#define N_BSS 8 24133965Sjdp#define N_COMM 0x12 /* common (visible in shared lib commons) */ 24233965Sjdp#define N_FN 0x1F /* File name of a .o file */ 24333965Sjdp 24433965Sjdp/* Note: N_EXT can only usefully be OR-ed with N_UNDF, N_ABS, N_TEXT, 24533965Sjdp N_DATA, or N_BSS. When the low-order bit of other types is set, 24633965Sjdp (e.g. N_WARNING versus N_FN), they are two different types. */ 24733965Sjdp#define N_EXT 1 24833965Sjdp#define N_TYPE 036 24933965Sjdp#define N_STAB 0340 25033965Sjdp 25133965Sjdp/* The following type indicates the definition of a symbol as being 25233965Sjdp an indirect reference to another symbol. The other symbol 25333965Sjdp appears as an undefined reference, immediately following this symbol. 25433965Sjdp 25533965Sjdp Indirection is asymmetrical. The other symbol's value will be used 25633965Sjdp to satisfy requests for the indirect symbol, but not vice versa. 25733965Sjdp If the other symbol does not have a definition, libraries will 25833965Sjdp be searched to find a definition. */ 25933965Sjdp 26033965Sjdp#define N_INDR 0xa 26133965Sjdp 26233965Sjdp/* The following symbols refer to set elements. 26333965Sjdp All the N_SET[ATDB] symbols with the same name form one set. 26433965Sjdp Space is allocated for the set in the text section, and each set 26533965Sjdp element's value is stored into one word of the space. 26633965Sjdp The first word of the space is the length of the set (number of elements). 26733965Sjdp 26833965Sjdp The address of the set is made into an N_SETV symbol 26933965Sjdp whose name is the same as the name of the set. 27033965Sjdp This symbol acts like a N_DATA global symbol 27133965Sjdp in that it can satisfy undefined external references. */ 27233965Sjdp 27333965Sjdp/* These appear as input to LD, in a .o file. */ 27433965Sjdp#define N_SETA 0x14 /* Absolute set element symbol */ 27533965Sjdp#define N_SETT 0x16 /* Text set element symbol */ 27633965Sjdp#define N_SETD 0x18 /* Data set element symbol */ 27733965Sjdp#define N_SETB 0x1A /* Bss set element symbol */ 27833965Sjdp 27933965Sjdp/* This is output from LD. */ 28033965Sjdp#define N_SETV 0x1C /* Pointer to set vector in data area. */ 28133965Sjdp 28233965Sjdp/* Warning symbol. The text gives a warning message, the next symbol 28333965Sjdp in the table will be undefined. When the symbol is referenced, the 28433965Sjdp message is printed. */ 28533965Sjdp 28633965Sjdp#define N_WARNING 0x1e 28733965Sjdp 28833965Sjdp/* Weak symbols. These are a GNU extension to the a.out format. The 28933965Sjdp semantics are those of ELF weak symbols. Weak symbols are always 29033965Sjdp externally visible. The N_WEAK? values are squeezed into the 29133965Sjdp available slots. The value of a N_WEAKU symbol is 0. The values 29233965Sjdp of the other types are the definitions. */ 29333965Sjdp#define N_WEAKU 0x0d /* Weak undefined symbol. */ 29433965Sjdp#define N_WEAKA 0x0e /* Weak absolute symbol. */ 29533965Sjdp#define N_WEAKT 0x0f /* Weak text symbol. */ 29633965Sjdp#define N_WEAKD 0x10 /* Weak data symbol. */ 29733965Sjdp#define N_WEAKB 0x11 /* Weak bss symbol. */ 29833965Sjdp 29933965Sjdp/* This structure describes a single relocation to be performed. 30033965Sjdp The text-relocation section of the file is a vector of these structures, 30133965Sjdp all of which apply to the text section. 30233965Sjdp Likewise, the data-relocation section applies to the data section. */ 30333965Sjdp 30433965Sjdp/* The following enum and struct were borrowed from SunOS's 30533965Sjdp /usr/include/sun4/a.out.h and extended to handle 30633965Sjdp other machines. It is currently used on SPARC and AMD 29000. 30733965Sjdp 30833965Sjdp reloc_ext_bytes is how it looks on disk. reloc_info_extended is 30933965Sjdp how we might process it on a native host. */ 31033965Sjdp#if USE_EXTENDED_RELOC 31133965Sjdp 31233965Sjdpstruct reloc_ext_bytes 31333965Sjdp { 31433965Sjdp unsigned char r_address[4]; 31533965Sjdp unsigned char r_index[3]; 31633965Sjdp unsigned char r_bits[1]; 31733965Sjdp unsigned char r_addend[4]; 31833965Sjdp }; 31933965Sjdp 32033965Sjdp#define RELOC_EXT_BITS_EXTERN_BIG 0x80 32133965Sjdp#define RELOC_EXT_BITS_EXTERN_LITTLE 0x01 32233965Sjdp 32333965Sjdp#define RELOC_EXT_BITS_TYPE_BIG 0x1F 32433965Sjdp#define RELOC_EXT_BITS_TYPE_SH_BIG 0 32533965Sjdp#define RELOC_EXT_BITS_TYPE_LITTLE 0xF8 32633965Sjdp#define RELOC_EXT_BITS_TYPE_SH_LITTLE 3 32733965Sjdp 32833965Sjdp#define RELOC_EXT_SIZE 12 /* Bytes per relocation entry */ 32933965Sjdp 33033965Sjdpstruct reloc_info_extended 33133965Sjdp{ 33233965Sjdp unsigned long r_address; 33333965Sjdp unsigned int r_index:24; 33433965Sjdp# define r_symbolnum r_index 33533965Sjdp unsigned r_extern:1; 33633965Sjdp unsigned:2; 33733965Sjdp /* RS/6000 compiler does not support enum bitfield 33833965Sjdp enum reloc_type r_type:5; */ 33933965Sjdp enum reloc_type r_type; 34033965Sjdp long int r_addend; 34133965Sjdp}; 34233965Sjdp 34333965Sjdp#else 34433965Sjdp 34533965Sjdp/* The standard, old-fashioned, Berkeley compatible relocation struct */ 34633965Sjdp 34733965Sjdp#ifdef TC_I860 34833965Sjdp/* NOTE: three bits max, see struct reloc_info_i860.r_type */ 34933965Sjdpenum i860_reloc_type 35033965Sjdp { 35133965Sjdp NO_RELOC = 0, BRADDR, LOW0, LOW1, LOW2, LOW3, LOW4, SPLIT0, SPLIT1, SPLIT2, RELOC_32, 35233965Sjdp }; 35333965Sjdp 35433965Sjdptypedef enum i860_reloc_type reloc_type; 35533965Sjdp 35633965Sjdp/* NOTE: two bits max, see reloc_info_i860.r_type */ 35733965Sjdpenum highlow_type 35833965Sjdp { 35933965Sjdp NO_SPEC = 0, PAIR, HIGH, HIGHADJ, 36033965Sjdp }; 36133965Sjdp 36233965Sjdpstruct reloc_info_i860 36333965Sjdp{ 36433965Sjdp unsigned long r_address; 36533965Sjdp /* 36633965Sjdp * Using bit fields here is a bad idea because the order is not portable. :-( 36733965Sjdp */ 36833965Sjdp unsigned int r_symbolnum:24; 36933965Sjdp unsigned int r_pcrel:1; 37033965Sjdp unsigned int r_extern:1; 37133965Sjdp /* combining the two field simplifies the argument passing in "new_fix()" */ 37233965Sjdp /* and is compatible with the existing Sparc #ifdef's */ 37333965Sjdp /* r_type: highlow_type - bits 5,4; reloc_type - bits 3-0 */ 37433965Sjdp unsigned int r_type:6; 37533965Sjdp long r_addend; 37633965Sjdp}; 37733965Sjdp 37833965Sjdp#endif /* TC_I860 */ 37933965Sjdp 38033965Sjdpstruct reloc_std_bytes 38133965Sjdp { 38233965Sjdp unsigned char r_address[4]; 38333965Sjdp unsigned char r_index[3]; 38433965Sjdp unsigned char r_bits[1]; 38533965Sjdp }; 38633965Sjdp 38733965Sjdp#define RELOC_STD_BITS_PCREL_BIG 0x80 38833965Sjdp#define RELOC_STD_BITS_PCREL_LITTLE 0x01 38933965Sjdp 39033965Sjdp#define RELOC_STD_BITS_LENGTH_BIG 0x60 39133965Sjdp#define RELOC_STD_BITS_LENGTH_SH_BIG 5 /* To shift to units place */ 39233965Sjdp#define RELOC_STD_BITS_LENGTH_LITTLE 0x06 39333965Sjdp#define RELOC_STD_BITS_LENGTH_SH_LITTLE 1 39433965Sjdp 39533965Sjdp#define RELOC_STD_BITS_EXTERN_BIG 0x10 39633965Sjdp#define RELOC_STD_BITS_EXTERN_LITTLE 0x08 39733965Sjdp 39833965Sjdp#define RELOC_STD_BITS_BASEREL_BIG 0x08 39933965Sjdp#define RELOC_STD_BITS_BASEREL_LITTLE 0x08 40033965Sjdp 40133965Sjdp#define RELOC_STD_BITS_JMPTABLE_BIG 0x04 40233965Sjdp#define RELOC_STD_BITS_JMPTABLE_LITTLE 0x04 40333965Sjdp 40433965Sjdp#define RELOC_STD_BITS_RELATIVE_BIG 0x02 40533965Sjdp#define RELOC_STD_BITS_RELATIVE_LITTLE 0x02 40633965Sjdp 40733965Sjdp#define RELOC_STD_SIZE 8 /* Bytes per relocation entry */ 40833965Sjdp 40933965Sjdp#endif /* USE_EXTENDED_RELOC */ 41033965Sjdp 41133965Sjdp#ifndef CUSTOM_RELOC_FORMAT 41233965Sjdpstruct relocation_info 41333965Sjdp{ 41433965Sjdp /* Address (within segment) to be relocated. */ 41533965Sjdp int r_address; 41633965Sjdp /* The meaning of r_symbolnum depends on r_extern. */ 41733965Sjdp unsigned int r_symbolnum:24; 41833965Sjdp /* Nonzero means value is a pc-relative offset 41933965Sjdp and it should be relocated for changes in its own address 42033965Sjdp as well as for changes in the symbol or section specified. */ 42133965Sjdp unsigned int r_pcrel:1; 42233965Sjdp /* Length (as exponent of 2) of the field to be relocated. 42333965Sjdp Thus, a value of 2 indicates 1<<2 bytes. */ 42433965Sjdp unsigned int r_length:2; 42533965Sjdp /* 1 => relocate with value of symbol. 42633965Sjdp r_symbolnum is the index of the symbol 42733965Sjdp in file's the symbol table. 42833965Sjdp 0 => relocate with the address of a segment. 42933965Sjdp r_symbolnum is N_TEXT, N_DATA, N_BSS or N_ABS 43033965Sjdp (the N_EXT bit may be set also, but signifies nothing). */ 43133965Sjdp unsigned int r_extern:1; 43233965Sjdp /* The next three bits are for SunOS shared libraries, and seem to 43333965Sjdp be undocumented. */ 43433965Sjdp#ifdef TC_NS32K 43533965Sjdp unsigned int r_bsr:1; 43633965Sjdp unsigned int r_disp:2; 43733965Sjdp#else 43833965Sjdp unsigned int r_baserel:1; /* Linkage table relative */ 43933965Sjdp unsigned int r_jmptable:1; /* pc-relative to jump table */ 44033965Sjdp unsigned int r_relative:1; /* "relative relocation" */ 44133965Sjdp#endif /* TC_NS32K */ 44233965Sjdp /* unused */ 44333965Sjdp unsigned int r_pad:1; /* Padding -- set to zero */ 44433965Sjdp}; 44533965Sjdp 44633965Sjdp#endif /* CUSTOM_RELOC_FORMAT */ 44733965Sjdp 44833965Sjdp#endif /* __A_OUT_GNU_H__ */ 44933965Sjdp 45033965Sjdp/* end of aout_gnu.h */ 451