This commit was manufactured by cvs2svn to create branch

'gdb_5_0-2000-04-10-branch'.

Sprout from binutils-2_10-branch 2000-04-04 14:32:33 UTC cvs2svn 'This commit was manufactured by cvs2svn to create branch 'binutils-'
Cherrypick from master 2000-04-09 12:17:36 UTC Andrew Cagney <cagney@gnu.org> 'Remove ``-W -Wall'' from top-level Makefile/configure.':
    ChangeLog
    MAINTAINERS
    Makefile.in
    configure
    include/ChangeLog
    include/aout/ChangeLog
    include/aout/aout64.h
    include/coff/ChangeLog
    include/coff/internal.h
    include/coff/sh.h
    include/coff/ti.h
    include/coff/tic54x.h
    include/elf/ChangeLog
    include/elf/arm.h
    include/elf/sh.h
    include/splay-tree.h
Delete:
    include/elf/arm-oabi.h
This commit is contained in:
cvs2svn 2000-04-09 12:17:37 +00:00
parent 69b6206fef
commit 80546f570d
17 changed files with 691 additions and 141 deletions

View File

@ -1,3 +1,13 @@
Fri Apr 7 18:10:29 2000 Andrew Cagney <cagney@b1.cygnus.com>
* configure (warn_cflags): Delete.
2000-03-30 Christopher Faylor <cgf@cygnus.com>
* Makefile.in (CC_FOR_TARGET): Add new winsup directory
structure stuff to -L library search.
(CXX_FOR_TARGET): Ditto.
2000-03-29 Jason Merrill <jason@casey.cygnus.com> 2000-03-29 Jason Merrill <jason@casey.cygnus.com>
* configure.in: -linux-gnu*, not -linux-gnu. * configure.in: -linux-gnu*, not -linux-gnu.

76
MAINTAINERS Normal file
View File

@ -0,0 +1,76 @@
Please feel free to add, edit, delete this file.
Please do not make ChangeLog entries.
COPYING, COPYING.LIB, README
http://gnu.org.
Makefile.in, configure, configure.in
Please notify the following of any committed patches.
bfd@sourceware.cygnus.com
gdb-patches@sourceware.cygnus.com
bfd/, binutils/, gas/, gprof/, ld/, opcodes/ & BFD's part of include/
binutils: http://sourceware.cygnus.com/binutils/
Patches to binutils@sourceware.cygnus.com.
Please notify the following of any interface changes:
gdb-patches@sourceware.cygnus.com
config.guess, config.sub
config: http://gnu.org
Changes need to be done in tandem with the official CONFIG
sources or submitted to the master file maintainer and brought
in via a merge.
libiberty/ & libiberty's part of include/
gcc: http://gcc.gnu.org
Changes need to be done in tandem with the official GCC
sources or submitted to the master file maintainer and brought
in via a merge.
ltconfig, ltmain.sh
libtool: http://gnu.org
Changes need to be done in tandem with the official LIBTOOL
sources or submitted to the master file maintainer and brought
in via a merge.
mkinstalldirs, move-if-change, symlink-tree
autoconf: http://gnu.org
Change need to be done in tandem with the official AUTOCONF
sources or submitted to the master file maintainer and brought
in via a merge.
newlib/, libgloss/
http://sourceware.cygnus.com/newlib/
Patches to newlib@sourceware.cygnus.com.
gdb/, mmalloc/, readline/, sim/ & GDB's part of include/
gdb: http://sourceware.cygnus.com/gdb/
Patches to gdb-patches@sourceware.cygnus.com.
See also gdb/MAINTAINERS, sim/MAINTAINERS, mmalloc/MAINTAINERS.
itcl/, tcl/, tix/, tk/, libgui/
insight: http://sourceware.cygnus.com/insight/
Contact insight@sourceware.cygnus.com.
winsup/
cygwin: http://sourceware.cygnus.com/cygwin
Patches to cygwin-patches@sourceware.cygnus.com.
General discussion cygwin@sourceware.cygnus.com.
See also winsup/MAINTAINERS.
expect/, dejagnu/, config-ml.in, mpw-README, mpw-build.in,
mpw-config.in, mpw-configure, mpw-install, setup.com, texinfo/,
missing, makefile.vms, utils/, config/, config.if, makefile.vms,
missing, ylwrap, mkdep, etc/, install-sh, intl/
?
modules file
Obviously changes to this file should not go through
overseers@sourceware.cygnus.com. If you understand the file
format (or can cut-and-paste existing entries), modify it. If
it scares you, get someone who does understand it to help you.
Be prepared to fix it if you do break it.
/* Local variables: */
/* change-log-default-name: "/dev/null" */
/* End: */

View File

@ -215,7 +215,7 @@ CC_FOR_TARGET = ` \
if [ -f $$r/$(TARGET_SUBDIR)/newlib/Makefile ] ; then \ if [ -f $$r/$(TARGET_SUBDIR)/newlib/Makefile ] ; then \
case "$(target_canonical)" in \ case "$(target_canonical)" in \
i[3456]86-*-cygwin*) \ i[3456]86-*-cygwin*) \
echo $$r/gcc/xgcc -B$$r/gcc/ -B$$r/$(TARGET_SUBDIR)/newlib/ -L$$r/$(TARGET_SUBDIR)/winsup -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/winsup/include -idirafter $$s/newlib/libc/include -idirafter $$s/newlib/libc/sys/cygwin -idirafter $$s/newlib/libc/sys/cygwin32 -nostdinc; \ echo $$r/gcc/xgcc -B$$r/gcc/ -B$(build_tooldir)/bin/ -B$$r/$(TARGET_SUBDIR)/newlib/ -L$$r/$(TARGET_SUBDIR)/winsup -L$$r/$(TARGET_SUBDIR)/winsup/cygwin -L$$r/$(TARGET_SUBDIR)/winsup/w32api/lib -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/winsup/include -idirafter $$s/winsup/cygwin/include -idirafter $$s/winsup/w32api/include -idirafter $$s/newlib/libc/include -idirafter $$s/newlib/libc/sys/cygwin -idirafter $$s/newlib/libc/sys/cygwin32 -nostdinc; \
;; \ ;; \
*) \ *) \
echo $$r/gcc/xgcc -B$$r/gcc/ -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/newlib/libc/include -nostdinc; \ echo $$r/gcc/xgcc -B$$r/gcc/ -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/newlib/libc/include -nostdinc; \
@ -254,7 +254,7 @@ CXX_FOR_TARGET = ` \
if [ -f $$r/$(TARGET_SUBDIR)/newlib/Makefile ] ; then \ if [ -f $$r/$(TARGET_SUBDIR)/newlib/Makefile ] ; then \
case "$(target_canonical)" in \ case "$(target_canonical)" in \
i[3456]86-*-cygwin*) \ i[3456]86-*-cygwin*) \
echo $$r/gcc/xgcc -B$$r/gcc/ -B$$r/$(TARGET_SUBDIR)/newlib/ -L$$r/$(TARGET_SUBDIR)/winsup -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/winsup/include -idirafter $$s/newlib/libc/include -idirafter $$s/newlib/libc/sys/cygwin -idirafter $$s/newlib/libc/sys/cygwin32 -nostdinc; \ echo $$r/gcc/xgcc -B$$r/gcc/ -B$(build_tooldir)/bin/ -B$$r/$(TARGET_SUBDIR)/newlib/ -L$$r/$(TARGET_SUBDIR)/winsup -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/winsup/cygwin/include -idirafter $$s/winsup/w32api/include -idirafter $$s/newlib/libc/include -idirafter $$s/newlib/libc/sys/cygwin -idirafter $$s/newlib/libc/sys/cygwin32 -nostdinc; \
;; \ ;; \
*) \ *) \
echo $$r/gcc/xgcc -B$$r/gcc/ -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/newlib/libc/include -nostdinc; \ echo $$r/gcc/xgcc -B$$r/gcc/ -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/newlib/libc/include -nostdinc; \

13
configure vendored
View File

@ -902,9 +902,6 @@ do
test -n "$DEFAULT_LEX" && break test -n "$DEFAULT_LEX" && break
done done
# BINUTILS LOCAL: This is included in the default CFLAGS when using gcc.
warn_cflags="-W -Wall"
if [ "${build}" != "${host}" ]; then if [ "${build}" != "${host}" ]; then
# If we are doing a Canadian Cross, in which the host and build systems # If we are doing a Canadian Cross, in which the host and build systems
# are not the same, we set reasonable default values for the tools. # are not the same, we set reasonable default values for the tools.
@ -938,7 +935,7 @@ t loop
AS_FOR_TARGET=${AS_FOR_TARGET-${target_alias}-as} AS_FOR_TARGET=${AS_FOR_TARGET-${target_alias}-as}
BISON=${BISON-bison} BISON=${BISON-bison}
CC=${CC-${host_alias}-gcc} CC=${CC-${host_alias}-gcc}
CFLAGS=${CFLAGS-"-g -O2 ${warn_cflags}"} CFLAGS=${CFLAGS-"-g -O2"}
CXX=${CXX-${host_alias}-c++} CXX=${CXX-${host_alias}-c++}
CXXFLAGS=${CXXFLAGS-"-g -O2"} CXXFLAGS=${CXXFLAGS-"-g -O2"}
CC_FOR_BUILD=${CC_FOR_BUILD-gcc} CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
@ -1018,10 +1015,10 @@ else
CC="gcc" CC="gcc"
echo 'void f(){}' > conftest.c echo 'void f(){}' > conftest.c
if test -z "`${CC} -g -c conftest.c 2>&1`"; then if test -z "`${CC} -g -c conftest.c 2>&1`"; then
CFLAGS=${CFLAGS-"-g -O2 ${warn_cflags}"} CFLAGS=${CFLAGS-"-g -O2"}
CXXFLAGS=${CXXFLAGS-"-g -O2"} CXXFLAGS=${CXXFLAGS-"-g -O2"}
else else
CFLAGS=${CFLAGS-"-O2 ${warn_cflags}"} CFLAGS=${CFLAGS-"-O2"}
CXXFLAGS=${CXXFLAGS-"-O2"} CXXFLAGS=${CXXFLAGS-"-O2"}
fi fi
rm -f conftest* rm -f conftest*
@ -1038,10 +1035,10 @@ else
*gcc) *gcc)
echo 'void f(){}' > conftest.c echo 'void f(){}' > conftest.c
if test -z "`${CC} -g -c conftest.c 2>&1`"; then if test -z "`${CC} -g -c conftest.c 2>&1`"; then
CFLAGS=${CFLAGS-"-g -O2 ${warn_cflags}"} CFLAGS=${CFLAGS-"-g -O2"}
CXXFLAGS=${CXXFLAGS-"-g -O2"} CXXFLAGS=${CXXFLAGS-"-g -O2"}
else else
CFLAGS=${CFLAGS-"-O2 ${warn_cflags}"} CFLAGS=${CFLAGS-"-O2"}
CXXFLAGS=${CXXFLAGS-"-O2"} CXXFLAGS=${CXXFLAGS-"-O2"}
fi fi
rm -f conftest* rm -f conftest*

View File

@ -1,3 +1,15 @@
2000-04-05 Richard Henderson <rth@cygnus.com>
* splay-tree.h (splay_tree_remove): Declare.
2000-04-04 Alan Modra <alan@linuxcare.com.au>
* bin-bugs.h (REPORT_BUGS_TO): Remove translated part.
2000-04-03 Alan Modra <alan@linuxcare.com.au>
* bin-bugs.h: New file.
2000-03-27 Denis Chertykov <denisc@overta.ru> 2000-03-27 Denis Chertykov <denisc@overta.ru>
* dis-asm.h (print_insn_avr): Declare. * dis-asm.h (print_insn_avr): Declare.

View File

@ -1,3 +1,12 @@
Mon Apr 3 13:29:08 2000 Hans-Peter Nilsson <hp@axis.com>
* aout64.h (RELOC_EXT_BITS_EXTERN_BIG): Wrap definition in #ifndef.
(RELOC_EXT_BITS_EXTERN_LITTLE): Ditto.
(RELOC_EXT_BITS_TYPE_BIG): Ditto.
(RELOC_EXT_BITS_TYPE_SH_BIG): Ditto.
(RELOC_EXT_BITS_TYPE_LITTLE): Ditto.
(RELOC_EXT_BITS_TYPE_SH_LITTLE): Ditto.
1999-07-12 Ian Lance Taylor <ian@zembu.com> 1999-07-12 Ian Lance Taylor <ian@zembu.com>
* aout64.h (N_SHARED_LIB): Define as 0 if TEXT_START_ADDR is * aout64.h (N_SHARED_LIB): Define as 0 if TEXT_START_ADDR is

View File

@ -388,13 +388,29 @@ struct reloc_ext_external {
bfd_byte r_addend[BYTES_IN_WORD]; /* datum addend */ bfd_byte r_addend[BYTES_IN_WORD]; /* datum addend */
}; };
#ifndef RELOC_EXT_BITS_EXTERN_BIG
#define RELOC_EXT_BITS_EXTERN_BIG ((unsigned int) 0x80) #define RELOC_EXT_BITS_EXTERN_BIG ((unsigned int) 0x80)
#define RELOC_EXT_BITS_EXTERN_LITTLE ((unsigned int) 0x01) #endif
#ifndef RELOC_EXT_BITS_EXTERN_LITTLE
#define RELOC_EXT_BITS_EXTERN_LITTLE ((unsigned int) 0x01)
#endif
#ifndef RELOC_EXT_BITS_TYPE_BIG
#define RELOC_EXT_BITS_TYPE_BIG ((unsigned int) 0x1F) #define RELOC_EXT_BITS_TYPE_BIG ((unsigned int) 0x1F)
#endif
#ifndef RELOC_EXT_BITS_TYPE_SH_BIG
#define RELOC_EXT_BITS_TYPE_SH_BIG 0 #define RELOC_EXT_BITS_TYPE_SH_BIG 0
#endif
#ifndef RELOC_EXT_BITS_TYPE_LITTLE
#define RELOC_EXT_BITS_TYPE_LITTLE ((unsigned int) 0xF8) #define RELOC_EXT_BITS_TYPE_LITTLE ((unsigned int) 0xF8)
#endif
#ifndef RELOC_EXT_BITS_TYPE_SH_LITTLE
#define RELOC_EXT_BITS_TYPE_SH_LITTLE 3 #define RELOC_EXT_BITS_TYPE_SH_LITTLE 3
#endif
/* Bytes per relocation entry */ /* Bytes per relocation entry */
#define RELOC_EXT_SIZE (BYTES_IN_WORD + 3 + 1 + BYTES_IN_WORD) #define RELOC_EXT_SIZE (BYTES_IN_WORD + 3 + 1 + BYTES_IN_WORD)

View File

@ -1,3 +1,13 @@
2000-04-07 Timothy Wall <twall@cygnus.com>
* internal.h: Fix some comments related to TI COFF (instead of tic80).
* ti.h: New.
* tic54x.h: New.
Wed Apr 5 22:08:41 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
* sh.h (R_SH_LOOP_START, R_SH_LOOP_END): Define.
2000-03-15 Kazu Hirata <kazu@hxi.com> 2000-03-15 Kazu Hirata <kazu@hxi.com>
* internal.h: Fix a typo in the comment for R_MOVL2. * internal.h: Fix a typo in the comment for R_MOVL2.

View File

@ -53,7 +53,7 @@ struct internal_filehdr
long f_nsyms; /* number of symtab entries */ long f_nsyms; /* number of symtab entries */
unsigned short f_opthdr; /* sizeof(optional hdr) */ unsigned short f_opthdr; /* sizeof(optional hdr) */
unsigned short f_flags; /* flags */ unsigned short f_flags; /* flags */
unsigned short f_target_id; /* (TIc80 specific) */ unsigned short f_target_id; /* (TI COFF specific) */
}; };
@ -222,7 +222,7 @@ struct internal_aouthdr
#define C_WEAKEXT 127 /* weak symbol -- GNU extension */ #define C_WEAKEXT 127 /* weak symbol -- GNU extension */
/* New storage classes for TIc80 */ /* New storage classes for TI COFF */
#define C_UEXT 19 /* Tentative external definition */ #define C_UEXT 19 /* Tentative external definition */
#define C_STATLAB 20 /* Static load time label */ #define C_STATLAB 20 /* Static load time label */
#define C_EXTLAB 21 /* External load time label */ #define C_EXTLAB 21 /* External load time label */

View File

@ -305,3 +305,6 @@ struct external_reloc {
#define R_SH_LABEL 32 /* label */ #define R_SH_LABEL 32 /* label */
/* NB: R_SH_SWITCH8 is 33 */ /* NB: R_SH_SWITCH8 is 33 */
#define R_SH_LOOP_START 34
#define R_SH_LOOP_END 35

437
include/coff/ti.h Normal file
View File

@ -0,0 +1,437 @@
/* COFF information for TI COFF support. Definitions in this file should be
customized in a target-specific file, and then this file included (see
tic54x.h for an example). */
#ifndef COFF_TI_H
#define COFF_TI_H
/********************** FILE HEADER **********************/
struct external_filehdr {
char f_magic[2]; /* magic number */
char f_nscns[2]; /* number of sections */
char f_timdat[4]; /* time & date stamp */
char f_symptr[4]; /* file pointer to symtab */
char f_nsyms[4]; /* number of symtab entries */
char f_opthdr[2]; /* sizeof(optional hdr) */
char f_flags[2]; /* flags */
char f_target_id[2]; /* magic no. (TI COFF-specific) */
};
/* COFF0 has magic number in f_magic, and omits f_target_id from the file
header; for later versions, f_magic is 0xC1 for COFF1 and 0xC2 for COFF2
and the target-specific magic number is found in f_target_id */
#define TICOFF0MAGIC TI_TARGET_ID
#define TICOFF1MAGIC 0x00C1
#define TICOFF2MAGIC 0x00C2
#define TICOFF_AOUT_MAGIC 0x0108 /* magic number in optional header */
#define TICOFF 1 /* customize coffcode.h */
/* The target_id field changes depending on the particular CPU target */
/* for COFF0, the target id appeared in f_magic, where COFFX magic is now */
#ifndef TI_TARGET_ID
#error "TI_TARGET_ID needs to be defined for your CPU"
#endif
/* Which bfd_arch to use... */
#ifndef TICOFF_TARGET_ARCH
#error "TICOFF_TARGET_ARCH needs to be defined for your CPU"
#endif
/* Default to COFF2 for file output */
#ifndef TICOFF_DEFAULT_MAGIC
#define TICOFF_DEFAULT_MAGIC TICOFF2MAGIC
#endif
/* This value is made available in the rare case where a bfd is unavailable */
#ifndef OCTETS_PER_BYTE_POWER
#warn OCTETS_PER_BYTE_POWER not defined for this CPU, it will default to 0
#else
#define OCTETS_PER_BYTE (1<<OCTETS_PER_BYTE_POWER)
#endif
/* default alignment is on a byte (not octet!) boundary */
#ifndef COFF_DEFAULT_SECTION_ALIGNMENT_POWER
#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER 0
#endif
/* TI COFF encodes the section alignment in the section header flags */
#define COFF_ALIGN_IN_SECTION_HEADER 1
#define COFF_ALIGN_IN_S_FLAGS 1
/* requires a power-of-two argument */
#define COFF_ENCODE_ALIGNMENT(S,X) ((S).s_flags |= (((unsigned)(X)&0xF)<<8))
/* result is a power of two */
#define COFF_DECODE_ALIGNMENT(X) (((X)>>8)&0xF)
#define COFF0_P(ABFD) (bfd_coff_filhsz(ABFD) == FILHSZ_V0)
#define COFF2_P(ABFD) (bfd_coff_scnhsz(ABFD) != SCNHSZ_V01)
#define COFF0_BADMAG(x) ((x).f_magic != TICOFF0MAGIC)
#define COFF1_BADMAG(x) ((x).f_magic != TICOFF1MAGIC || (x).f_target_id != TI_TARGET_ID)
#define COFF2_BADMAG(x) ((x).f_magic != TICOFF2MAGIC || (x).f_target_id != TI_TARGET_ID)
/* we need to read/write an extra field in the coff file header */
#ifndef COFF_ADJUST_FILEHDR_IN_POST
#define COFF_ADJUST_FILEHDR_IN_POST(abfd,src,dst) \
do { ((struct internal_filehdr *)(dst))->f_target_id = \
bfd_h_get_16(abfd, (bfd_byte *)(((FILHDR *)(src))->f_target_id)); \
((struct internal_filehdr *)(dst))->f_flags |= F_LDPAGE; \
} while(0)
#endif
#ifndef COFF_ADJUST_FILEHDR_OUT_POST
#define COFF_ADJUST_FILEHDR_OUT_POST(abfd,src,dst) \
do { bfd_h_put_16(abfd, ((struct internal_filehdr *)(src))->f_target_id, \
(bfd_byte *)(((FILHDR *)(dst))->f_target_id)); \
} while(0)
#endif
#define FILHDR struct external_filehdr
#define FILHSZ 22
#define FILHSZ_V0 20 /* COFF0 omits target_id field */
/* File header flags */
#define F_RELFLG (0x0001)
#define F_EXEC (0x0002)
#define F_LNNO (0x0004)
/* F_LSYMS needs to be redefined in your source file */
#define F_LSYMS_TICOFF (0x0010) /* normal COFF is 0x8 */
#define F_10 0x00 /* file built for TMS320C1x devices */
#define F_20 0x10 /* file built for TMS320C2x devices */
#define F_25 0x20 /* file built for TMS320C2x/C5x devices */
#define F_LENDIAN 0x0100 /* 16 bits/word, LSB first */
#define F_SYMMERGE 0x1000 /* duplicate symbols were removed */
/********************** OPTIONAL HEADER **********************/
typedef struct
{
char magic[2]; /* type of file (0x108) */
char vstamp[2]; /* version stamp */
char tsize[4]; /* text size in bytes, padded to FW bdry*/
char dsize[4]; /* initialized data " " */
char bsize[4]; /* uninitialized data " " */
char entry[4]; /* entry pt. */
char text_start[4]; /* base of text used for this file */
char data_start[4]; /* base of data used for this file */
}
AOUTHDR;
#define AOUTHDRSZ 28
#define AOUTSZ 28
/********************** SECTION HEADER **********************/
/* COFF0, COFF1 */
struct external_scnhdr_v01 {
char s_name[8]; /* section name */
char s_paddr[4]; /* physical address, aliased s_nlib */
char s_vaddr[4]; /* virtual address */
char s_size[4]; /* section size (in WORDS) */
char s_scnptr[4]; /* file ptr to raw data for section */
char s_relptr[4]; /* file ptr to relocation */
char s_lnnoptr[4]; /* file ptr to line numbers */
char s_nreloc[2]; /* number of relocation entries */
char s_nlnno[2]; /* number of line number entries*/
char s_flags[2]; /* flags */
char s_reserved[1]; /* reserved */
char s_page[1]; /* section page number (LOAD) */
};
/* COFF2 */
struct external_scnhdr {
char s_name[8]; /* section name */
char s_paddr[4]; /* physical address, aliased s_nlib */
char s_vaddr[4]; /* virtual address */
char s_size[4]; /* section size (in WORDS) */
char s_scnptr[4]; /* file ptr to raw data for section */
char s_relptr[4]; /* file ptr to relocation */
char s_lnnoptr[4]; /* file ptr to line numbers */
char s_nreloc[4]; /* number of relocation entries */
char s_nlnno[4]; /* number of line number entries*/
char s_flags[4]; /* flags */
char s_reserved[2]; /* reserved */
char s_page[2]; /* section page number (LOAD) */
};
/*
* Special section flags
*/
/* recognized load pages */
#define PG_PROG 0x0 /* PROG page */
#define PG_DATA 0x1 /* DATA page */
/* TI COFF defines these flags;
STYP_CLINK: the section should be excluded from the final
linker output if there are no references found to any symbol in the section
STYP_BLOCK: the section should be blocked, i.e. if the section would cross
a page boundary, it is started at a page boundary instead.
TI COFF puts the section alignment power of two in the section flags
e.g. 2**N is alignment, flags |= (N & 0xF) << 8
*/
#define STYP_CLINK (0x4000)
#define STYP_BLOCK (0x1000)
#define STYP_ALIGN (0x0F00) /* TI COFF stores section alignment here */
#define SCNHDR_V01 struct external_scnhdr_v01
#define SCNHDR struct external_scnhdr
#define SCNHSZ_V01 40 /* for v0 and v1 */
#define SCNHSZ 48
/* COFF2 changes the offsets and sizes of these fields
Assume we're dealing with the COFF2 scnhdr structure, and adjust
accordingly
*/
#define GET_SCNHDR_NRELOC(ABFD,PTR) \
(COFF2_P(ABFD) ? bfd_h_get_32 (ABFD,PTR) : bfd_h_get_16 (ABFD, PTR))
#define PUT_SCNHDR_NRELOC(ABFD,VAL,PTR) \
(COFF2_P(ABFD) ? bfd_h_put_32 (ABFD,VAL,PTR) : bfd_h_put_16 (ABFD,VAL,PTR))
#define GET_SCNHDR_NLNNO(ABFD,PTR) \
(COFF2_P(ABFD) ? bfd_h_get_32 (ABFD,PTR) : bfd_h_get_16 (ABFD, (PTR)-2))
#define PUT_SCNHDR_NLNNO(ABFD,VAL,PTR) \
(COFF2_P(ABFD) ? bfd_h_put_32 (ABFD,VAL,PTR) : bfd_h_put_16 (ABFD,VAL,(PTR)-2))
#define GET_SCNHDR_FLAGS(ABFD,PTR) \
(COFF2_P(ABFD) ? bfd_h_get_32 (ABFD,PTR) : bfd_h_get_16 (ABFD, (PTR)-4))
#define PUT_SCNHDR_FLAGS(ABFD,VAL,PTR) \
(COFF2_P(ABFD) ? bfd_h_put_32 (ABFD,VAL,PTR) : bfd_h_put_16 (ABFD,VAL,(PTR)-4))
#define GET_SCNHDR_PAGE(ABFD,PTR) \
(COFF2_P(ABFD) ? bfd_h_get_16 (ABFD,PTR) : bfd_h_get_8 (ABFD, (PTR)-7))
/* on output, make sure that the "reserved" field is zero */
#define PUT_SCNHDR_PAGE(ABFD,VAL,PTR) \
(COFF2_P(ABFD) ? bfd_h_put_16 (ABFD,VAL,PTR) : \
bfd_h_put_8 (ABFD,VAL,(PTR)-7), bfd_h_put_8 (ABFD, 0, (PTR)-8))
/* TI COFF stores section size as number of bytes (address units, not octets),
so adjust to be number of octets, which is what BFD expects */
#define GET_SCNHDR_SIZE(ABFD,SZP) \
(bfd_h_get_32(ABFD,SZP)*bfd_octets_per_byte(ABFD))
#define PUT_SCNHDR_SIZE(ABFD,SZ,SZP) \
bfd_h_put_32(ABFD,(SZ)/bfd_octets_per_byte(ABFD),SZP)
#define COFF_ADJUST_SCNHDR_IN_POST(ABFD,EXT,INT) \
do { ((struct internal_scnhdr *)(INT))->s_page = \
GET_SCNHDR_PAGE(ABFD,(bfd_byte *)((SCNHDR *)(EXT))->s_page); \
} while(0)
/* The line number and reloc overflow checking in coff_swap_scnhdr_out in
coffswap.h doesn't use PUT_X for s_nlnno and s_nreloc.
Due to different sized v0/v1/v2 section headers, we have to re-write these
fields.
*/
#define COFF_ADJUST_SCNHDR_OUT_POST(ABFD,INT,EXT) \
do { \
PUT_SCNHDR_NLNNO(ABFD,((struct internal_scnhdr *)(INT))->s_nlnno,\
(bfd_byte *)((SCNHDR *)(EXT))->s_nlnno); \
PUT_SCNHDR_NRELOC(ABFD,((struct internal_scnhdr *)(INT))->s_nreloc,\
(bfd_byte *)((SCNHDR *)(EXT))->s_nreloc); \
PUT_SCNHDR_FLAGS(ABFD,((struct internal_scnhdr *)(INT))->s_flags, \
(bfd_byte *)((SCNHDR *)(EXT))->s_flags); \
PUT_SCNHDR_PAGE(ABFD,((struct internal_scnhdr *)(INT))->s_page, \
(bfd_byte *)((SCNHDR *)(EXT))->s_page); \
} while(0)
/* page macros
the first GDB port requires flags in its remote memory access commands to
distinguish between data/prog space. hopefully we can make this go away
eventually. stuff the page in the upper bits of a 32-bit address, since
the c5x family only uses 16 or 23 bits.
c2x, c5x and most c54x devices have 16-bit addresses, but the c548 has
23-bit program addresses. make sure the page flags don't interfere
These flags are used by GDB to identify the destination page for
addresses.
*/
#define LONG_ADDRESSES 1
#define PG_SHIFT (LONG_ADDRESSES ? 30 : 16)
#define ADDR_MASK ((1ul<<PG_SHIFT)-1)/* 16 or 24-bit addresses */
#define PG_MASK (3ul<<PG_SHIFT)
#define PG_TO_FLAG(p) ((p)<<PG_SHIFT)
#define FLAG_TO_PG(f) (((f)&PG_MASK)>>PG_SHIFT)
/*
* names of "special" sections
*/
#define _TEXT ".text"
#define _DATA ".data"
#define _BSS ".bss"
#define _CINIT ".cinit" /* initialized C data */
#define _SCONST ".const" /* constants */
#define _SWITCH ".switch" /* switch tables */
#define _STACK ".stack" /* C stack */
#define _SYSMEM ".sysmem" /* used for malloc et al. syscalls */
/********************** LINE NUMBERS **********************/
/* 1 line number entry for every "breakpointable" source line in a section.
* Line numbers are grouped on a per function basis; first entry in a function
* grouping will have l_lnno = 0 and in place of physical address will be the
* symbol table index of the function name.
*/
struct external_lineno {
union {
char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/
char l_paddr[4]; /* (physical) address of line number */
} l_addr;
char l_lnno[2]; /* line number */
};
#define LINENO struct external_lineno
#define LINESZ 6
/********************** SYMBOLS **********************/
/* NOTE: this is what a local label looks like in assembly source; what it
looks like in COFF output is undefined */
#define TICOFF_LOCAL_LABEL_P(NAME) \
((NAME[0] == '$' && NAME[1] >= '0' && NAME[1] <= '9' && NAME[2] == '\0') \
|| NAME[strlen(NAME)-1] == '?')
#define E_SYMNMLEN 8 /* # characters in a symbol name */
#define E_FILNMLEN 14 /* # characters in a file name */
#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */
struct external_syment
{
union {
char e_name[E_SYMNMLEN];
struct {
char e_zeroes[4];
char e_offset[4];
} e;
} e;
char e_value[4];
char e_scnum[2];
char e_type[2];
char e_sclass[1];
char e_numaux[1];
};
#define N_BTMASK (017)
#define N_TMASK (060)
#define N_BTSHFT (4)
#define N_TSHIFT (2)
union external_auxent {
struct {
char x_tagndx[4]; /* str, un, or enum tag indx */
union {
struct {
char x_lnno[2]; /* declaration line number */
char x_size[2]; /* str/union/array size */
} x_lnsz;
char x_fsize[4]; /* size of function */
} x_misc;
union {
struct { /* if ISFCN, tag, or .bb */
char x_lnnoptr[4]; /* ptr to fcn line # */
char x_endndx[4]; /* entry ndx past block end */
} x_fcn;
struct { /* if ISARY, up to 4 dimen. */
char x_dimen[E_DIMNUM][2];
} x_ary;
} x_fcnary;
char x_tvndx[2]; /* tv index */
} x_sym;
union {
char x_fname[E_FILNMLEN];
struct {
char x_zeroes[4];
char x_offset[4];
} x_n;
} x_file;
struct {
char x_scnlen[4]; /* section length */
char x_nreloc[2]; /* # relocation entries */
char x_nlinno[2]; /* # line numbers */
} x_scn;
struct {
char x_tvfill[4]; /* tv fill value */
char x_tvlen[2]; /* length of .tv */
char x_tvran[2][2]; /* tv range */
} x_tv; /* info about .tv section (in auxent of symbol .tv)) */
};
#define SYMENT struct external_syment
#define SYMESZ 18
#define AUXENT union external_auxent
#define AUXESZ 18
/* section lengths are in target bytes (not host bytes) */
#define GET_SCN_SCNLEN(ABFD,EXT) \
(bfd_h_get_32(ABFD,(bfd_byte *)(EXT)->x_scn.x_scnlen)*bfd_octets_per_byte(ABFD))
#define PUT_SCN_SCNLEN(ABFD,INT,EXT) \
bfd_h_put_32(ABFD,(INT)/bfd_octets_per_byte(ABFD),\
(bfd_byte *)(EXT)->x_scn.x_scnlen)
/* lnsz size is in bits in COFF file, in bytes in BFD */
#define GET_LNSZ_SIZE(abfd, ext) \
(bfd_h_get_16(abfd, (bfd_byte *)ext->x_sym.x_misc.x_lnsz.x_size) / \
(class != C_FIELD ? 8 : 1))
#define PUT_LNSZ_SIZE(abfd, in, ext) \
bfd_h_put_16(abfd, ((class != C_FIELD) ? (in)*8 : (in)), \
(bfd_byte*) ext->x_sym.x_misc.x_lnsz.x_size)
/* TI COFF stores offsets for MOS and MOU in bits; BFD expects bytes */
#define COFF_ADJUST_SYM_IN_POST(ABFD,EXT,INT) \
do { struct internal_syment *dst = (struct internal_syment *)(INT); \
if (dst->n_sclass == C_MOS || dst->n_sclass == C_MOU) dst->n_value /= 8; \
} while (0)
#define COFF_ADJUST_SYM_OUT_POST(ABFD,INT,EXT) \
do { struct internal_syment *src = (struct internal_syment *)(INT); \
SYMENT *dst = (SYMENT *)(EXT); \
if(src->n_sclass == C_MOU || src->n_sclass == C_MOS) \
bfd_h_put_32(abfd,src->n_value * 8,(bfd_byte *)dst->e_value); \
} while (0)
/* Detect section-relative absolute symbols so they get flagged with a sym
index of -1.
*/
#define SECTION_RELATIVE_ABSOLUTE_SYMBOL_P(RELOC,SECT) \
((*(RELOC)->sym_ptr_ptr)->section->output_section == (SECT) \
&& (RELOC)->howto->name[0] == 'A')
/********************** RELOCATION DIRECTIVES **********************/
struct external_reloc_v0 {
char r_vaddr[4];
char r_symndx[2];
char r_reserved[2];
char r_type[2];
};
struct external_reloc {
char r_vaddr[4];
char r_symndx[4];
char r_reserved[2]; /* extended pmad byte for COFF2 */
char r_type[2];
};
#define RELOC struct external_reloc
#define RELSZ_V0 10 /* FIXME -- coffcode.h needs fixing */
#define RELSZ 12 /* for COFF1/2 */
/* various relocation types. */
#define R_ABS 0x0000 /* no relocation */
#define R_REL13 0x002A /* 13-bit direct reference (???) */
#define R_PARTLS7 0x0028 /* 7 LSBs of an address */
#define R_PARTMS9 0x0029 /* 9MSBs of an address */
#define R_EXTWORD 0x002B /* 23-bit direct reference */
#define R_EXTWORD16 0x002C /* 16-bit direct reference to 23-bit addr*/
#define R_EXTWORDMS7 0x002D /* upper 7 bits of 23-bit address */
#endif /* COFF_TI_H */

14
include/coff/tic54x.h Normal file
View File

@ -0,0 +1,14 @@
/* TI COFF information for Texas Instruments TMS320C54X. This file customizes
the settings in coff/ti.h. */
#ifndef COFF_TIC54X_H
#define COFF_TIC54X_H
#define TIC54X_TARGET_ID 0x98
#define TIC54XALGMAGIC 0x009B /* c54x algebraic assembler output */
#define TIC5X_TARGET_ID 0x92
#define TI_TARGET_ID TIC54X_TARGET_ID
#define OCTETS_PER_BYTE_POWER 1 /* octets per byte, as a power of two */
#define HOWTO_BANK 6 /* add to howto to get absolute/sect-relative version */
#define TICOFF_TARGET_ARCH bfd_arch_tic54x
#define TICOFF_DEFAULT_MAGIC TICOFF1MAGIC /* we use COFF1 for compatibility */
#include "coff/ti.h"
#endif /* COFF_TIC54X_H */

View File

@ -1,3 +1,23 @@
2000-04-07 Nick Clifton <nickc@cygnus.com>
* arm-oabi.h: Delete.
* arm.h: Merge in definitions of old reloc numbers from
arm-oabi.h.
2000-04-06 Nick Clifton <nickc@cygnus.com>
* arm.h (EF_ARM_SYMSARESORTED): Define.
(EF_ARM_EABIMASK): Define.
(EF_ARM_EABI_VERSION): Define.
(EF_ARM_EABI_UNKNOWN): Define.
(EF_ARM_EABI_VER1): Define.
(PF_ARM_PI): Define.
(PF_ARM_ABS): Define.
Wed Apr 5 22:08:59 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
* sh.h (R_SH_LOOP_START, R_SH_LOOP_END): New RELOC_NUMBERs.
2000-03-27 Denis Chertykov <denisc@overta.ru> 2000-03-27 Denis Chertykov <denisc@overta.ru>
* avr.h: New file. AVR ELF support for BFD. * avr.h: New file. AVR ELF support for BFD.

View File

@ -1,88 +0,0 @@
/* ARM ELF support for BFD.
Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef _ELF_ARM_H
#define _ELF_ARM_H
#include "elf/reloc-macros.h"
/* Processor specific flags for the ELF header e_flags field. */
#define EF_ARM_RELEXEC 0x01
#define EF_ARM_HASENTRY 0x02
#define EF_INTERWORK 0x04
#define EF_APCS_26 0x08
#define EF_APCS_FLOAT 0x10
#define EF_PIC 0x20
#define EF_ALIGN8 0x40 /* 8-bit structure alignment is in use. */
#define EF_NEW_ABI 0x80
#define EF_OLD_ABI 0x100
/* Local aliases for some flags to match names used by COFF port. */
#define F_INTERWORK EF_INTERWORK
#define F_APCS26 EF_APCS_26
#define F_APCS_FLOAT EF_APCS_FLOAT
#define F_PIC EF_PIC
/* Additional symbol types for Thumb. */
#define STT_ARM_TFUNC STT_LOPROC /* A Thumb function. */
#define STT_ARM_16BIT STT_HIPROC /* A Thumb label. */
/* ARM-specific values for sh_flags. */
#define SHF_ENTRYSECT 0x10000000 /* Section contains an entry point. */
#define SHF_COMDEF 0x80000000 /* Section may be multiply defined in the input to a link step. */
/* ARM-specific program header flags. */
#define PF_ARM_SB 0x10000000 /* Segment contains the location addressed by the static base. */
/* Relocation types. */
START_RELOC_NUMBERS (elf_arm_reloc_type)
RELOC_NUMBER (R_ARM_NONE, 0)
RELOC_NUMBER (R_ARM_PC24, 1)
RELOC_NUMBER (R_ARM_ABS32, 2)
RELOC_NUMBER (R_ARM_REL32, 3)
RELOC_NUMBER (R_ARM_ABS8, 4)
RELOC_NUMBER (R_ARM_ABS16, 5)
RELOC_NUMBER (R_ARM_ABS12, 6)
RELOC_NUMBER (R_ARM_THM_ABS5, 7)
RELOC_NUMBER (R_ARM_THM_PC22, 8)
RELOC_NUMBER (R_ARM_SBREL32, 9)
RELOC_NUMBER (R_ARM_AMP_VCALL9, 10)
RELOC_NUMBER (R_ARM_THM_PC11, 11) /* Cygnus extension to abi: Thumb unconditional branch. */
RELOC_NUMBER (R_ARM_THM_PC9, 12) /* Cygnus extension to abi: Thumb conditional branch. */
RELOC_NUMBER (R_ARM_GNU_VTINHERIT, 13)
RELOC_NUMBER (R_ARM_GNU_VTENTRY, 14)
RELOC_NUMBER (R_ARM_COPY, 20) /* Copy symbol at runtime. */
RELOC_NUMBER (R_ARM_GLOB_DAT, 21) /* Create GOT entry. */
RELOC_NUMBER (R_ARM_JUMP_SLOT, 22) /* Create PLT entry. */
RELOC_NUMBER (R_ARM_RELATIVE, 23) /* Adjust by program base. */
RELOC_NUMBER (R_ARM_GOTOFF, 24) /* 32 bit offset to GOT. */
RELOC_NUMBER (R_ARM_GOTPC, 25) /* 32 bit PC relative offset to GOT. */
RELOC_NUMBER (R_ARM_GOT32, 26) /* 32 bit GOT entry. */
RELOC_NUMBER (R_ARM_PLT32, 27) /* 32 bit PLT address. */
FAKE_RELOC (FIRST_INVALID_RELOC, 28)
FAKE_RELOC (LAST_INVALID_RELOC, 249)
RELOC_NUMBER (R_ARM_RSBREL32, 250)
RELOC_NUMBER (R_ARM_THM_RPC22, 251)
RELOC_NUMBER (R_ARM_RREL32, 252)
RELOC_NUMBER (R_ARM_RABS32, 253)
RELOC_NUMBER (R_ARM_RPC24, 254)
RELOC_NUMBER (R_ARM_RBASE, 255)
END_RELOC_NUMBERS
#endif

View File

@ -34,6 +34,14 @@
#define EF_OLD_ABI 0x100 #define EF_OLD_ABI 0x100
#define EF_SOFT_FLOAT 0x200 #define EF_SOFT_FLOAT 0x200
/* Other constants defined in the ARM ELF spec. version A-08. */
#define EF_ARM_SYMSARESORTED 0x04 /* NB conflicts with EF_INTERWORK */
#define EF_ARM_EABIMASK 0xFF000000
#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK)
#define EF_ARM_EABI_UNKNOWN 0x00000000
#define EF_ARM_EABI_VER1 0x01000000
/* Local aliases for some flags to match names used by COFF port. */ /* Local aliases for some flags to match names used by COFF port. */
#define F_INTERWORK EF_INTERWORK #define F_INTERWORK EF_INTERWORK
#define F_APCS26 EF_APCS_26 #define F_APCS26 EF_APCS_26
@ -51,49 +59,71 @@
/* ARM-specific program header flags. */ /* ARM-specific program header flags. */
#define PF_ARM_SB 0x10000000 /* Segment contains the location addressed by the static base. */ #define PF_ARM_SB 0x10000000 /* Segment contains the location addressed by the static base. */
#define PF_ARM_PI 0x20000000 /* Segment is position-independent. */
#define PF_ARM_ABS 0x40000000 /* Segment must be loaded at its base address. */
/* Relocation types. */ /* Relocation types. */
START_RELOC_NUMBERS (elf_arm_reloc_type) START_RELOC_NUMBERS (elf_arm_reloc_type)
RELOC_NUMBER (R_ARM_NONE, 0) RELOC_NUMBER (R_ARM_NONE, 0)
RELOC_NUMBER (R_ARM_PC24, 1) RELOC_NUMBER (R_ARM_PC24, 1)
RELOC_NUMBER (R_ARM_ABS32, 2) RELOC_NUMBER (R_ARM_ABS32, 2)
RELOC_NUMBER (R_ARM_REL32, 3) RELOC_NUMBER (R_ARM_REL32, 3)
RELOC_NUMBER (R_ARM_PC13, 4) #ifdef OLD_ARM_ABI
RELOC_NUMBER (R_ARM_ABS16, 5) RELOC_NUMBER (R_ARM_ABS8, 4)
RELOC_NUMBER (R_ARM_ABS12, 6) RELOC_NUMBER (R_ARM_ABS16, 5)
RELOC_NUMBER (R_ARM_THM_ABS5, 7) RELOC_NUMBER (R_ARM_ABS12, 6)
RELOC_NUMBER (R_ARM_ABS8, 8) RELOC_NUMBER (R_ARM_THM_ABS5, 7)
RELOC_NUMBER (R_ARM_SBREL32, 9) RELOC_NUMBER (R_ARM_THM_PC22, 8)
RELOC_NUMBER (R_ARM_THM_PC22, 10) RELOC_NUMBER (R_ARM_SBREL32, 9)
RELOC_NUMBER (R_ARM_THM_PC8, 11) RELOC_NUMBER (R_ARM_AMP_VCALL9, 10)
RELOC_NUMBER (R_ARM_AMP_VCALL9, 12) RELOC_NUMBER (R_ARM_THM_PC11, 11) /* Cygnus extension to abi: Thumb unconditional branch. */
RELOC_NUMBER (R_ARM_SWI24, 13) RELOC_NUMBER (R_ARM_THM_PC9, 12) /* Cygnus extension to abi: Thumb conditional branch. */
RELOC_NUMBER (R_ARM_THM_SWI8, 14) RELOC_NUMBER (R_ARM_GNU_VTINHERIT, 13)
RELOC_NUMBER (R_ARM_XPC25, 15) RELOC_NUMBER (R_ARM_GNU_VTENTRY, 14)
RELOC_NUMBER (R_ARM_THM_XPC22, 16) #else /* not OLD_ARM_ABI */
RELOC_NUMBER (R_ARM_COPY, 20) /* copy symbol at runtime */ RELOC_NUMBER (R_ARM_PC13, 4)
RELOC_NUMBER (R_ARM_GLOB_DAT, 21) /* create GOT entry */ RELOC_NUMBER (R_ARM_ABS16, 5)
RELOC_NUMBER (R_ARM_JUMP_SLOT, 22) /* create PLT entry */ RELOC_NUMBER (R_ARM_ABS12, 6)
RELOC_NUMBER (R_ARM_RELATIVE, 23) /* adjust by program base */ RELOC_NUMBER (R_ARM_THM_ABS5, 7)
RELOC_NUMBER (R_ARM_GOTOFF, 24) /* 32 bit offset to GOT */ RELOC_NUMBER (R_ARM_ABS8, 8)
RELOC_NUMBER (R_ARM_GOTPC, 25) /* 32 bit PC relative offset to GOT */ RELOC_NUMBER (R_ARM_SBREL32, 9)
RELOC_NUMBER (R_ARM_GOT32, 26) /* 32 bit GOT entry */ RELOC_NUMBER (R_ARM_THM_PC22, 10)
RELOC_NUMBER (R_ARM_PLT32, 27) /* 32 bit PLT address */ RELOC_NUMBER (R_ARM_THM_PC8, 11)
FAKE_RELOC (FIRST_INVALID_RELOC1, 28) RELOC_NUMBER (R_ARM_AMP_VCALL9, 12)
FAKE_RELOC (LAST_INVALID_RELOC1, 99) RELOC_NUMBER (R_ARM_SWI24, 13)
RELOC_NUMBER (R_ARM_GNU_VTENTRY, 100) RELOC_NUMBER (R_ARM_THM_SWI8, 14)
RELOC_NUMBER (R_ARM_GNU_VTINHERIT, 101) RELOC_NUMBER (R_ARM_XPC25, 15)
RELOC_NUMBER (R_ARM_THM_PC11, 102) /* Cygnus extension to abi: Thumb unconditional branch */ RELOC_NUMBER (R_ARM_THM_XPC22, 16)
RELOC_NUMBER (R_ARM_THM_PC9, 103) /* Cygnus extension to abi: Thumb conditional branch */ #endif /* not OLD_ARM_ABI */
RELOC_NUMBER (R_ARM_COPY, 20) /* Copy symbol at runtime. */
RELOC_NUMBER (R_ARM_GLOB_DAT, 21) /* Create GOT entry. */
RELOC_NUMBER (R_ARM_JUMP_SLOT, 22) /* Create PLT entry. */
RELOC_NUMBER (R_ARM_RELATIVE, 23) /* Adjust by program base. */
RELOC_NUMBER (R_ARM_GOTOFF, 24) /* 32 bit offset to GOT. */
RELOC_NUMBER (R_ARM_GOTPC, 25) /* 32 bit PC relative offset to GOT. */
RELOC_NUMBER (R_ARM_GOT32, 26) /* 32 bit GOT entry. */
RELOC_NUMBER (R_ARM_PLT32, 27) /* 32 bit PLT address. */
#ifdef OLD_ARM_ABI
FAKE_RELOC (FIRST_INVALID_RELOC, 28)
FAKE_RELOC (LAST_INVALID_RELOC, 249)
#else /* not OLD_ARM_ABI */
FAKE_RELOC (FIRST_INVALID_RELOC1, 28)
FAKE_RELOC (LAST_INVALID_RELOC1, 99)
RELOC_NUMBER (R_ARM_GNU_VTENTRY, 100)
RELOC_NUMBER (R_ARM_GNU_VTINHERIT, 101)
RELOC_NUMBER (R_ARM_THM_PC11, 102) /* Cygnus extension to abi: Thumb unconditional branch. */
RELOC_NUMBER (R_ARM_THM_PC9, 103) /* Cygnus extension to abi: Thumb conditional branch. */
FAKE_RELOC (FIRST_INVALID_RELOC2, 104) FAKE_RELOC (FIRST_INVALID_RELOC2, 104)
FAKE_RELOC (LAST_INVALID_RELOC2, 248) FAKE_RELOC (LAST_INVALID_RELOC2, 248)
RELOC_NUMBER (R_ARM_RXPC25, 249) RELOC_NUMBER (R_ARM_RXPC25, 249)
RELOC_NUMBER (R_ARM_RSBREL32, 250) #endif /* not OLD_ARM_ABI */
RELOC_NUMBER (R_ARM_THM_RPC22, 251) RELOC_NUMBER (R_ARM_RSBREL32, 250)
RELOC_NUMBER (R_ARM_RREL32, 252) RELOC_NUMBER (R_ARM_THM_RPC22, 251)
RELOC_NUMBER (R_ARM_RABS32, 253) RELOC_NUMBER (R_ARM_RREL32, 252)
RELOC_NUMBER (R_ARM_RPC24, 254) RELOC_NUMBER (R_ARM_RABS32, 253)
RELOC_NUMBER (R_ARM_RBASE, 255) RELOC_NUMBER (R_ARM_RPC24, 254)
RELOC_NUMBER (R_ARM_RBASE, 255)
END_RELOC_NUMBERS END_RELOC_NUMBERS
#endif #endif /* _ELF_ARM_H */

View File

@ -1,5 +1,5 @@
/* SH ELF support for BFD. /* SH ELF support for BFD.
Copyright (C) 1998 Free Software Foundation, Inc. Copyright (C) 1998, 2000 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library. This file is part of BFD, the Binary File Descriptor library.
@ -76,6 +76,8 @@ START_RELOC_NUMBERS (elf_sh_reloc_type)
RELOC_NUMBER (R_SH_SWITCH8, 33) RELOC_NUMBER (R_SH_SWITCH8, 33)
RELOC_NUMBER (R_SH_GNU_VTINHERIT, 34) RELOC_NUMBER (R_SH_GNU_VTINHERIT, 34)
RELOC_NUMBER (R_SH_GNU_VTENTRY, 35) RELOC_NUMBER (R_SH_GNU_VTENTRY, 35)
RELOC_NUMBER (R_SH_LOOP_START, 36)
RELOC_NUMBER (R_SH_LOOP_END, 37)
EMPTY_RELOC (R_SH_max) EMPTY_RELOC (R_SH_max)
END_RELOC_NUMBERS END_RELOC_NUMBERS

View File

@ -99,6 +99,8 @@ extern splay_tree_node splay_tree_insert
PARAMS((splay_tree, PARAMS((splay_tree,
splay_tree_key, splay_tree_key,
splay_tree_value)); splay_tree_value));
extern void splay_tree_remove PARAMS((splay_tree,
splay_tree_key));
extern splay_tree_node splay_tree_lookup extern splay_tree_node splay_tree_lookup
PARAMS((splay_tree, PARAMS((splay_tree,
splay_tree_key)); splay_tree_key));