1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23: #include "sysdep.h"
24: #include "bfd.h"
25: #include "libbfd.h"
26: #include "coff/we32k.h"
27: #include "coff/internal.h"
28: #include "libcoff.h"
29:
30: #define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (3)
31:
32: static reloc_howto_type howto_table[] =
33: {
34: EMPTY_HOWTO (0),
35: EMPTY_HOWTO (1),
36: EMPTY_HOWTO (2),
37: EMPTY_HOWTO (3),
38: EMPTY_HOWTO (4),
39: EMPTY_HOWTO (5),
40: HOWTO(R_DIR32, 0, 2, 32, FALSE, 0,complain_overflow_bitfield, 0, "dir32", TRUE, 0xffffffff,0xffffffff, FALSE),
41: EMPTY_HOWTO (7),
42: EMPTY_HOWTO (010),
43: EMPTY_HOWTO (011),
44: EMPTY_HOWTO (012),
45: EMPTY_HOWTO (013),
46: EMPTY_HOWTO (014),
47: EMPTY_HOWTO (015),
48: EMPTY_HOWTO (016),
49: HOWTO(R_RELBYTE, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, "8", TRUE, 0x000000ff,0x000000ff, FALSE),
50: HOWTO(R_RELWORD, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, 0, "16", TRUE, 0x0000ffff,0x0000ffff, FALSE),
51: HOWTO(R_RELLONG, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, 0, "32", TRUE, 0xffffffff,0xffffffff, FALSE),
52: HOWTO(R_PCRBYTE, 0, 0, 8, TRUE, 0, complain_overflow_signed, 0, "DISP8", TRUE, 0x000000ff,0x000000ff, FALSE),
53: HOWTO(R_PCRWORD, 0, 1, 16, TRUE, 0, complain_overflow_signed, 0, "DISP16", TRUE, 0x0000ffff,0x0000ffff, FALSE),
54: HOWTO(R_PCRLONG, 0, 2, 32, TRUE, 0, complain_overflow_signed, 0, "DISP32", TRUE, 0xffffffff,0xffffffff, FALSE),
55: };
56:
57:
58:
59: #define SELECT_RELOC(x,howto) { x.r_type = howto->type; }
60: #define BADMAG(x) WE32KBADMAG(x)
61: #define WE32K 1
62:
63: #define RTYPE2HOWTO(cache_ptr, dst) \
64: (cache_ptr)->howto = howto_table + (dst)->r_type;
65:
66: #include "coffcode.h"
67:
68: #define coff_write_armap bsd_write_armap
69:
70: CREATE_BIG_COFF_TARGET_VEC (we32kcoff_vec, "coff-we32k", 0, 0, 0, NULL, COFF_SWAP_TABLE)