Fix RELOC_FOR_GLOBAL_SYMBOLS macro so that it can cope with user defined symbols...
[binutils-gdb.git] / bfd / bpf-reloc.def
blob65228d440096a3c0e9dc825c2fe54c74bc0900b1
1 /* This reloc does nothing. */
2 BPF_HOWTO (R_BPF_NONE, /* type */
3 0, /* rightshift */
4 0, /* size */
5 0, /* bitsize */
6 false, /* pc_relative */
7 0, /* bitpos */
8 complain_overflow_dont, /* complain_on_overflow */
9 bpf_elf_generic_reloc, /* special_function */
10 "R_BPF_NONE", /* name */
11 false, /* partial_inplace */
12 0, /* src_mask */
13 0, /* dst_mask */
14 false) /* pcrel_offset */
16 /* 64-immediate in LDDW instruction. */
17 BPF_HOWTO (R_BPF_64_64, /* type */
18 0, /* rightshift */
19 8, /* size */
20 64, /* bitsize */
21 false, /* pc_relative */
22 32, /* bitpos */
23 complain_overflow_signed, /* complain_on_overflow */
24 bpf_elf_generic_reloc, /* special_function */
25 "R_BPF_64_64", /* name */
26 true, /* partial_inplace */
27 MINUS_ONE, /* src_mask */
28 MINUS_ONE, /* dst_mask */
29 true) /* pcrel_offset */
31 /* 32-bit data. */
32 BPF_HOWTO (R_BPF_64_ABS32, /* type */
33 0, /* rightshift */
34 4, /* size */
35 32, /* bitsize */
36 false, /* pc_relative */
37 0, /* bitpos */
38 complain_overflow_bitfield, /* complain_on_overflow */
39 bpf_elf_generic_reloc, /* special_function */
40 "R_BPF_64_ABS32", /* name */
41 true, /* partial_inplace */
42 0xffffffff, /* src_mask */
43 0xffffffff, /* dst_mask */
44 true) /* pcrel_offset */
46 /* 64-bit data. */
47 BPF_HOWTO (R_BPF_64_ABS64, /* type */
48 0, /* rightshift */
49 8, /* size */
50 64, /* bitsize */
51 false, /* pc_relative */
52 0, /* bitpos */
53 complain_overflow_bitfield, /* complain_on_overflow */
54 bpf_elf_generic_reloc, /* special_function */
55 "R_BPF_64_ABS64", /* name */
56 true, /* partial_inplace */
57 0, /* src_mask */
58 MINUS_ONE, /* dst_mask */
59 true) /* pcrel_offset */
61 /* 32-bit PC-relative address in call instructions. */
62 BPF_HOWTO (R_BPF_64_32, /* type */
63 0, /* rightshift */
64 4, /* size */
65 32, /* bitsize */
66 true, /* pc_relative */
67 32, /* bitpos */
68 complain_overflow_signed, /* complain_on_overflow */
69 bpf_elf_generic_reloc, /* special_function */
70 "R_BPF_64_32", /* name */
71 true, /* partial_inplace */
72 0xffffffff, /* src_mask */
73 0xffffffff, /* dst_mask */
74 true) /* pcrel_offset */
76 /* 16-bit PC-relative address in load instructions. */
77 BPF_HOWTO (R_BPF_GNU_64_16, /* type */
78 0, /* rightshift */
79 2, /* size */
80 16, /* bitsize */
81 true, /* pc_relative */
82 16, /* bitpos */
83 complain_overflow_signed, /* complain_on_overflow */
84 bpf_elf_generic_reloc, /* special_function */
85 "R_BPF_GNU_64_16", /* name */
86 true, /* partial_inplace */
87 0xffff, /* src_mask */
88 0xffff, /* dst_mask */
89 true) /* pcrel_offset */
91 /* R_BPF_64_NODYLD32 is not used by GNU tools - but it is generated by LLVM.
92 We provide an entry here so that tools like strip can safely handle BPF
93 binaries generated by other tools.
94 R_BPF_64_NODYLD32 should be fixed at linker like a R_BPF_64_ABS32.
95 The difference to ABS32 is that LLVM execution engine does not resolve
96 R_BPF_64_NODYLD32 relocations. */
97 BPF_HOWTO (R_BPF_64_NODYLD32, /* type */
98 0, /* rightshift */
99 4, /* size */
100 32, /* bitsize */
101 false, /* pc_relative */
102 0, /* bitpos */
103 complain_overflow_bitfield, /* complain_on_overflow */
104 bpf_elf_generic_reloc, /* special_function */
105 "R_BPF_64_NODYLD32", /* name */
106 true, /* partial_inplace */
107 0xffffffff, /* src_mask */
108 0xffffffff, /* dst_mask */
109 true) /* pcrel_offset */