Coverage Report

Created: 2026-10-23 06:42

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/elfutils/backends/common-reloc.c
Line
Count
Source
1
/* Common code for ebl reloc functions.
2
   Copyright (C) 2005, 2006 Red Hat, Inc.
3
   This file is part of elfutils.
4
5
   This file is free software; you can redistribute it and/or modify
6
   it under the terms of either
7
8
     * the GNU Lesser General Public License as published by the Free
9
       Software Foundation; either version 3 of the License, or (at
10
       your option) any later version
11
12
   or
13
14
     * the GNU General Public License as published by the Free
15
       Software Foundation; either version 2 of the License, or (at
16
       your option) any later version
17
18
   or both in parallel, as here.
19
20
   elfutils is distributed in the hope that it will be useful, but
21
   WITHOUT ANY WARRANTY; without even the implied warranty of
22
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
23
   General Public License for more details.
24
25
   You should have received copies of the GNU General Public License and
26
   the GNU Lesser General Public License along with this program.  If
27
   not, see <http://www.gnu.org/licenses/>.  */
28
29
#include "libebl_CPU.h"
30
#include <assert.h>
31
32
0
#define R_TYPE(name)    PASTE (RELOC_PREFIX, name)
33
0
#define PASTE(a, b)   PASTE_1 (a, b)
34
0
#define PASTE_1(a, b)   a##b
35
#define R_NAME(name)    R_NAME_1 (RELOC_PREFIX, name)
36
#define R_NAME_1(prefix, type)  R_NAME_2 (prefix, type)
37
#define R_NAME_2(prefix, type)  #prefix #type
38
39
#define RELOC_TYPES   STRINGIFIED_PASTE (BACKEND, reloc.def)
40
#define STRINGIFIED_PASTE(a, b) STRINGIFY (PASTE (a, b))
41
#define STRINGIFY(x)    STRINGIFY_1 (x)
42
#define STRINGIFY_1(x)    #x
43
44
/* Provide a table of reloc type names, in a PIC-friendly fashion.  */
45
46
static const struct EBLHOOK(reloc_nametable)
47
{
48
  char zero[1];
49
#define RELOC_TYPE(type, uses) \
50
  char name_##type[sizeof R_NAME (type)];
51
#include RELOC_TYPES
52
#undef RELOC_TYPE
53
} EBLHOOK(reloc_nametable) =
54
  {
55
    { '\0' },
56
#define RELOC_TYPE(type, uses) R_NAME (type),
57
#include RELOC_TYPES
58
#undef RELOC_TYPE
59
  };
60
0
#define reloc_namestr (&EBLHOOK(reloc_nametable).zero)
61
62
static const uint_fast16_t EBLHOOK(reloc_nameidx)[] =
63
{
64
#define RELOC_TYPE(type, uses) \
65
  [R_TYPE (type)] = offsetof (struct EBLHOOK(reloc_nametable), name_##type),
66
#include RELOC_TYPES
67
#undef RELOC_TYPE
68
};
69
#define nreloc \
70
0
  ((int) (sizeof EBLHOOK(reloc_nameidx) / sizeof EBLHOOK(reloc_nameidx)[0]))
71
72
#define REL (1 << (ET_REL - 1))
73
#define EXEC  (1 << (ET_EXEC - 1))
74
#define DYN (1 << (ET_DYN - 1))
75
static const uint8_t EBLHOOK(reloc_valid)[] =
76
{
77
#define RELOC_TYPE(type, uses) [R_TYPE (type)] = uses,
78
#include RELOC_TYPES
79
#undef RELOC_TYPE
80
};
81
#undef REL
82
#undef EXEC
83
#undef DYN
84
85
const char *
86
EBLHOOK(reloc_type_name) (int reloc,
87
        char *buf __attribute__ ((unused)),
88
        size_t len __attribute__ ((unused)))
89
0
{
90
#ifdef RELOC_TYPE_ID
91
0
  reloc = RELOC_TYPE_ID (reloc);
92
#endif
93
94
0
  if (reloc >= 0 && reloc < nreloc && EBLHOOK(reloc_nameidx)[reloc] != 0)
95
0
    return reloc_namestr[EBLHOOK(reloc_nameidx)[reloc]];
96
0
  return NULL;
97
0
}
Unexecuted instantiation: i386_reloc_type_name
Unexecuted instantiation: sh_reloc_type_name
Unexecuted instantiation: x86_64_reloc_type_name
Unexecuted instantiation: ia64_reloc_type_name
Unexecuted instantiation: alpha_reloc_type_name
Unexecuted instantiation: arm_reloc_type_name
Unexecuted instantiation: aarch64_reloc_type_name
Unexecuted instantiation: sparc_reloc_type_name
Unexecuted instantiation: ppc_reloc_type_name
Unexecuted instantiation: ppc64_reloc_type_name
Unexecuted instantiation: s390_reloc_type_name
Unexecuted instantiation: m68k_reloc_type_name
Unexecuted instantiation: bpf_reloc_type_name
Unexecuted instantiation: riscv_reloc_type_name
Unexecuted instantiation: csky_reloc_type_name
Unexecuted instantiation: loongarch_reloc_type_name
Unexecuted instantiation: arc_reloc_type_name
98
99
bool
100
EBLHOOK(reloc_type_check) (int reloc)
101
0
{
102
#ifdef RELOC_TYPE_ID
103
0
  reloc = RELOC_TYPE_ID (reloc);
104
#endif
105
106
0
  return reloc >= 0 && reloc < nreloc && EBLHOOK(reloc_nameidx)[reloc] != 0;
107
0
}
Unexecuted instantiation: i386_reloc_type_check
Unexecuted instantiation: sh_reloc_type_check
Unexecuted instantiation: x86_64_reloc_type_check
Unexecuted instantiation: ia64_reloc_type_check
Unexecuted instantiation: alpha_reloc_type_check
Unexecuted instantiation: arm_reloc_type_check
Unexecuted instantiation: aarch64_reloc_type_check
Unexecuted instantiation: sparc_reloc_type_check
Unexecuted instantiation: ppc_reloc_type_check
Unexecuted instantiation: ppc64_reloc_type_check
Unexecuted instantiation: s390_reloc_type_check
Unexecuted instantiation: m68k_reloc_type_check
Unexecuted instantiation: bpf_reloc_type_check
Unexecuted instantiation: riscv_reloc_type_check
Unexecuted instantiation: csky_reloc_type_check
Unexecuted instantiation: loongarch_reloc_type_check
Unexecuted instantiation: arc_reloc_type_check
108
109
bool
110
EBLHOOK(reloc_valid_use) (Elf *elf, int reloc)
111
0
{
112
0
  uint8_t uses;
113
114
0
  GElf_Ehdr ehdr_mem;
115
0
  GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem);
116
0
  assert (ehdr != NULL);
117
0
  uint8_t type = ehdr->e_type;
118
119
#ifdef RELOC_TYPE_ID
120
0
  reloc = RELOC_TYPE_ID (reloc);
121
#endif
122
123
0
  uses = EBLHOOK(reloc_valid)[reloc];
124
0
  return type > ET_NONE && type < ET_CORE && (uses & (1 << (type - 1)));
125
0
}
Unexecuted instantiation: i386_reloc_valid_use
Unexecuted instantiation: sh_reloc_valid_use
Unexecuted instantiation: x86_64_reloc_valid_use
Unexecuted instantiation: ia64_reloc_valid_use
Unexecuted instantiation: alpha_reloc_valid_use
Unexecuted instantiation: arm_reloc_valid_use
Unexecuted instantiation: aarch64_reloc_valid_use
Unexecuted instantiation: sparc_reloc_valid_use
Unexecuted instantiation: ppc_reloc_valid_use
Unexecuted instantiation: ppc64_reloc_valid_use
Unexecuted instantiation: s390_reloc_valid_use
Unexecuted instantiation: m68k_reloc_valid_use
Unexecuted instantiation: bpf_reloc_valid_use
Unexecuted instantiation: riscv_reloc_valid_use
Unexecuted instantiation: csky_reloc_valid_use
Unexecuted instantiation: loongarch_reloc_valid_use
Unexecuted instantiation: arc_reloc_valid_use
126
127
#ifndef NO_COPY_RELOC
128
bool
129
EBLHOOK(copy_reloc_p) (int reloc)
130
0
{
131
0
  return reloc == R_TYPE (COPY);
132
0
}
Unexecuted instantiation: i386_copy_reloc_p
Unexecuted instantiation: sh_copy_reloc_p
Unexecuted instantiation: x86_64_copy_reloc_p
Unexecuted instantiation: ia64_copy_reloc_p
Unexecuted instantiation: alpha_copy_reloc_p
Unexecuted instantiation: arm_copy_reloc_p
Unexecuted instantiation: aarch64_copy_reloc_p
Unexecuted instantiation: sparc_copy_reloc_p
Unexecuted instantiation: ppc_copy_reloc_p
Unexecuted instantiation: ppc64_copy_reloc_p
Unexecuted instantiation: s390_copy_reloc_p
Unexecuted instantiation: m68k_copy_reloc_p
Unexecuted instantiation: riscv_copy_reloc_p
Unexecuted instantiation: csky_copy_reloc_p
Unexecuted instantiation: loongarch_copy_reloc_p
Unexecuted instantiation: arc_copy_reloc_p
133
#endif
134
135
bool
136
EBLHOOK(none_reloc_p) (int reloc)
137
0
{
138
0
  return reloc == R_TYPE (NONE);
139
0
}
Unexecuted instantiation: i386_none_reloc_p
Unexecuted instantiation: sh_none_reloc_p
Unexecuted instantiation: x86_64_none_reloc_p
Unexecuted instantiation: ia64_none_reloc_p
Unexecuted instantiation: alpha_none_reloc_p
Unexecuted instantiation: arm_none_reloc_p
Unexecuted instantiation: aarch64_none_reloc_p
Unexecuted instantiation: sparc_none_reloc_p
Unexecuted instantiation: ppc_none_reloc_p
Unexecuted instantiation: ppc64_none_reloc_p
Unexecuted instantiation: s390_none_reloc_p
Unexecuted instantiation: m68k_none_reloc_p
Unexecuted instantiation: bpf_none_reloc_p
Unexecuted instantiation: riscv_none_reloc_p
Unexecuted instantiation: csky_none_reloc_p
Unexecuted instantiation: loongarch_none_reloc_p
Unexecuted instantiation: arc_none_reloc_p
140
141
#ifndef NO_RELATIVE_RELOC
142
bool
143
EBLHOOK(relative_reloc_p) (int reloc)
144
0
{
145
0
  return reloc == R_TYPE (RELATIVE);
146
0
}
Unexecuted instantiation: i386_relative_reloc_p
Unexecuted instantiation: sh_relative_reloc_p
Unexecuted instantiation: x86_64_relative_reloc_p
Unexecuted instantiation: alpha_relative_reloc_p
Unexecuted instantiation: arm_relative_reloc_p
Unexecuted instantiation: aarch64_relative_reloc_p
Unexecuted instantiation: sparc_relative_reloc_p
Unexecuted instantiation: ppc_relative_reloc_p
Unexecuted instantiation: ppc64_relative_reloc_p
Unexecuted instantiation: s390_relative_reloc_p
Unexecuted instantiation: m68k_relative_reloc_p
Unexecuted instantiation: riscv_relative_reloc_p
Unexecuted instantiation: csky_relative_reloc_p
Unexecuted instantiation: loongarch_relative_reloc_p
Unexecuted instantiation: arc_relative_reloc_p
147
#endif
148
149
static void
150
EBLHOOK(init_reloc) (Ebl *ebl)
151
7.98k
{
152
7.98k
  ebl->reloc_type_name = EBLHOOK(reloc_type_name);
153
7.98k
  ebl->reloc_type_check = EBLHOOK(reloc_type_check);
154
7.98k
  ebl->reloc_valid_use = EBLHOOK(reloc_valid_use);
155
7.98k
  ebl->none_reloc_p = EBLHOOK(none_reloc_p);
156
#ifndef NO_COPY_RELOC
157
7.97k
  ebl->copy_reloc_p = EBLHOOK(copy_reloc_p);
158
#endif
159
#ifndef NO_RELATIVE_RELOC
160
7.95k
  ebl->relative_reloc_p = EBLHOOK(relative_reloc_p);
161
#endif
162
7.98k
}
i386_init.c:i386_init_reloc
Line
Count
Source
151
457
{
152
457
  ebl->reloc_type_name = EBLHOOK(reloc_type_name);
153
457
  ebl->reloc_type_check = EBLHOOK(reloc_type_check);
154
457
  ebl->reloc_valid_use = EBLHOOK(reloc_valid_use);
155
457
  ebl->none_reloc_p = EBLHOOK(none_reloc_p);
156
457
#ifndef NO_COPY_RELOC
157
457
  ebl->copy_reloc_p = EBLHOOK(copy_reloc_p);
158
457
#endif
159
457
#ifndef NO_RELATIVE_RELOC
160
457
  ebl->relative_reloc_p = EBLHOOK(relative_reloc_p);
161
457
#endif
162
457
}
sh_init.c:sh_init_reloc
Line
Count
Source
151
6
{
152
6
  ebl->reloc_type_name = EBLHOOK(reloc_type_name);
153
6
  ebl->reloc_type_check = EBLHOOK(reloc_type_check);
154
6
  ebl->reloc_valid_use = EBLHOOK(reloc_valid_use);
155
6
  ebl->none_reloc_p = EBLHOOK(none_reloc_p);
156
6
#ifndef NO_COPY_RELOC
157
6
  ebl->copy_reloc_p = EBLHOOK(copy_reloc_p);
158
6
#endif
159
6
#ifndef NO_RELATIVE_RELOC
160
6
  ebl->relative_reloc_p = EBLHOOK(relative_reloc_p);
161
6
#endif
162
6
}
x86_64_init.c:x86_64_init_reloc
Line
Count
Source
151
645
{
152
645
  ebl->reloc_type_name = EBLHOOK(reloc_type_name);
153
645
  ebl->reloc_type_check = EBLHOOK(reloc_type_check);
154
645
  ebl->reloc_valid_use = EBLHOOK(reloc_valid_use);
155
645
  ebl->none_reloc_p = EBLHOOK(none_reloc_p);
156
645
#ifndef NO_COPY_RELOC
157
645
  ebl->copy_reloc_p = EBLHOOK(copy_reloc_p);
158
645
#endif
159
645
#ifndef NO_RELATIVE_RELOC
160
645
  ebl->relative_reloc_p = EBLHOOK(relative_reloc_p);
161
645
#endif
162
645
}
ia64_init.c:ia64_init_reloc
Line
Count
Source
151
15
{
152
15
  ebl->reloc_type_name = EBLHOOK(reloc_type_name);
153
15
  ebl->reloc_type_check = EBLHOOK(reloc_type_check);
154
15
  ebl->reloc_valid_use = EBLHOOK(reloc_valid_use);
155
15
  ebl->none_reloc_p = EBLHOOK(none_reloc_p);
156
15
#ifndef NO_COPY_RELOC
157
15
  ebl->copy_reloc_p = EBLHOOK(copy_reloc_p);
158
15
#endif
159
#ifndef NO_RELATIVE_RELOC
160
  ebl->relative_reloc_p = EBLHOOK(relative_reloc_p);
161
#endif
162
15
}
alpha_init.c:alpha_init_reloc
Line
Count
Source
151
16
{
152
16
  ebl->reloc_type_name = EBLHOOK(reloc_type_name);
153
16
  ebl->reloc_type_check = EBLHOOK(reloc_type_check);
154
16
  ebl->reloc_valid_use = EBLHOOK(reloc_valid_use);
155
16
  ebl->none_reloc_p = EBLHOOK(none_reloc_p);
156
16
#ifndef NO_COPY_RELOC
157
16
  ebl->copy_reloc_p = EBLHOOK(copy_reloc_p);
158
16
#endif
159
16
#ifndef NO_RELATIVE_RELOC
160
16
  ebl->relative_reloc_p = EBLHOOK(relative_reloc_p);
161
16
#endif
162
16
}
arm_init.c:arm_init_reloc
Line
Count
Source
151
373
{
152
373
  ebl->reloc_type_name = EBLHOOK(reloc_type_name);
153
373
  ebl->reloc_type_check = EBLHOOK(reloc_type_check);
154
373
  ebl->reloc_valid_use = EBLHOOK(reloc_valid_use);
155
373
  ebl->none_reloc_p = EBLHOOK(none_reloc_p);
156
373
#ifndef NO_COPY_RELOC
157
373
  ebl->copy_reloc_p = EBLHOOK(copy_reloc_p);
158
373
#endif
159
373
#ifndef NO_RELATIVE_RELOC
160
373
  ebl->relative_reloc_p = EBLHOOK(relative_reloc_p);
161
373
#endif
162
373
}
aarch64_init.c:aarch64_init_reloc
Line
Count
Source
151
417
{
152
417
  ebl->reloc_type_name = EBLHOOK(reloc_type_name);
153
417
  ebl->reloc_type_check = EBLHOOK(reloc_type_check);
154
417
  ebl->reloc_valid_use = EBLHOOK(reloc_valid_use);
155
417
  ebl->none_reloc_p = EBLHOOK(none_reloc_p);
156
417
#ifndef NO_COPY_RELOC
157
417
  ebl->copy_reloc_p = EBLHOOK(copy_reloc_p);
158
417
#endif
159
417
#ifndef NO_RELATIVE_RELOC
160
417
  ebl->relative_reloc_p = EBLHOOK(relative_reloc_p);
161
417
#endif
162
417
}
sparc_init.c:sparc_init_reloc
Line
Count
Source
151
745
{
152
745
  ebl->reloc_type_name = EBLHOOK(reloc_type_name);
153
745
  ebl->reloc_type_check = EBLHOOK(reloc_type_check);
154
745
  ebl->reloc_valid_use = EBLHOOK(reloc_valid_use);
155
745
  ebl->none_reloc_p = EBLHOOK(none_reloc_p);
156
745
#ifndef NO_COPY_RELOC
157
745
  ebl->copy_reloc_p = EBLHOOK(copy_reloc_p);
158
745
#endif
159
745
#ifndef NO_RELATIVE_RELOC
160
745
  ebl->relative_reloc_p = EBLHOOK(relative_reloc_p);
161
745
#endif
162
745
}
ppc_init.c:ppc_init_reloc
Line
Count
Source
151
351
{
152
351
  ebl->reloc_type_name = EBLHOOK(reloc_type_name);
153
351
  ebl->reloc_type_check = EBLHOOK(reloc_type_check);
154
351
  ebl->reloc_valid_use = EBLHOOK(reloc_valid_use);
155
351
  ebl->none_reloc_p = EBLHOOK(none_reloc_p);
156
351
#ifndef NO_COPY_RELOC
157
351
  ebl->copy_reloc_p = EBLHOOK(copy_reloc_p);
158
351
#endif
159
351
#ifndef NO_RELATIVE_RELOC
160
351
  ebl->relative_reloc_p = EBLHOOK(relative_reloc_p);
161
351
#endif
162
351
}
ppc64_init.c:ppc64_init_reloc
Line
Count
Source
151
2.81k
{
152
2.81k
  ebl->reloc_type_name = EBLHOOK(reloc_type_name);
153
2.81k
  ebl->reloc_type_check = EBLHOOK(reloc_type_check);
154
2.81k
  ebl->reloc_valid_use = EBLHOOK(reloc_valid_use);
155
2.81k
  ebl->none_reloc_p = EBLHOOK(none_reloc_p);
156
2.81k
#ifndef NO_COPY_RELOC
157
2.81k
  ebl->copy_reloc_p = EBLHOOK(copy_reloc_p);
158
2.81k
#endif
159
2.81k
#ifndef NO_RELATIVE_RELOC
160
2.81k
  ebl->relative_reloc_p = EBLHOOK(relative_reloc_p);
161
2.81k
#endif
162
2.81k
}
s390_init.c:s390_init_reloc
Line
Count
Source
151
725
{
152
725
  ebl->reloc_type_name = EBLHOOK(reloc_type_name);
153
725
  ebl->reloc_type_check = EBLHOOK(reloc_type_check);
154
725
  ebl->reloc_valid_use = EBLHOOK(reloc_valid_use);
155
725
  ebl->none_reloc_p = EBLHOOK(none_reloc_p);
156
725
#ifndef NO_COPY_RELOC
157
725
  ebl->copy_reloc_p = EBLHOOK(copy_reloc_p);
158
725
#endif
159
725
#ifndef NO_RELATIVE_RELOC
160
725
  ebl->relative_reloc_p = EBLHOOK(relative_reloc_p);
161
725
#endif
162
725
}
m68k_init.c:m68k_init_reloc
Line
Count
Source
151
355
{
152
355
  ebl->reloc_type_name = EBLHOOK(reloc_type_name);
153
355
  ebl->reloc_type_check = EBLHOOK(reloc_type_check);
154
355
  ebl->reloc_valid_use = EBLHOOK(reloc_valid_use);
155
355
  ebl->none_reloc_p = EBLHOOK(none_reloc_p);
156
355
#ifndef NO_COPY_RELOC
157
355
  ebl->copy_reloc_p = EBLHOOK(copy_reloc_p);
158
355
#endif
159
355
#ifndef NO_RELATIVE_RELOC
160
355
  ebl->relative_reloc_p = EBLHOOK(relative_reloc_p);
161
355
#endif
162
355
}
bpf_init.c:bpf_init_reloc
Line
Count
Source
151
14
{
152
14
  ebl->reloc_type_name = EBLHOOK(reloc_type_name);
153
14
  ebl->reloc_type_check = EBLHOOK(reloc_type_check);
154
14
  ebl->reloc_valid_use = EBLHOOK(reloc_valid_use);
155
14
  ebl->none_reloc_p = EBLHOOK(none_reloc_p);
156
#ifndef NO_COPY_RELOC
157
  ebl->copy_reloc_p = EBLHOOK(copy_reloc_p);
158
#endif
159
#ifndef NO_RELATIVE_RELOC
160
  ebl->relative_reloc_p = EBLHOOK(relative_reloc_p);
161
#endif
162
14
}
riscv_init.c:riscv_init_reloc
Line
Count
Source
151
500
{
152
500
  ebl->reloc_type_name = EBLHOOK(reloc_type_name);
153
500
  ebl->reloc_type_check = EBLHOOK(reloc_type_check);
154
500
  ebl->reloc_valid_use = EBLHOOK(reloc_valid_use);
155
500
  ebl->none_reloc_p = EBLHOOK(none_reloc_p);
156
500
#ifndef NO_COPY_RELOC
157
500
  ebl->copy_reloc_p = EBLHOOK(copy_reloc_p);
158
500
#endif
159
500
#ifndef NO_RELATIVE_RELOC
160
500
  ebl->relative_reloc_p = EBLHOOK(relative_reloc_p);
161
500
#endif
162
500
}
csky_init.c:csky_init_reloc
Line
Count
Source
151
285
{
152
285
  ebl->reloc_type_name = EBLHOOK(reloc_type_name);
153
285
  ebl->reloc_type_check = EBLHOOK(reloc_type_check);
154
285
  ebl->reloc_valid_use = EBLHOOK(reloc_valid_use);
155
285
  ebl->none_reloc_p = EBLHOOK(none_reloc_p);
156
285
#ifndef NO_COPY_RELOC
157
285
  ebl->copy_reloc_p = EBLHOOK(copy_reloc_p);
158
285
#endif
159
285
#ifndef NO_RELATIVE_RELOC
160
285
  ebl->relative_reloc_p = EBLHOOK(relative_reloc_p);
161
285
#endif
162
285
}
loongarch_init.c:loongarch_init_reloc
Line
Count
Source
151
250
{
152
250
  ebl->reloc_type_name = EBLHOOK(reloc_type_name);
153
250
  ebl->reloc_type_check = EBLHOOK(reloc_type_check);
154
250
  ebl->reloc_valid_use = EBLHOOK(reloc_valid_use);
155
250
  ebl->none_reloc_p = EBLHOOK(none_reloc_p);
156
250
#ifndef NO_COPY_RELOC
157
250
  ebl->copy_reloc_p = EBLHOOK(copy_reloc_p);
158
250
#endif
159
250
#ifndef NO_RELATIVE_RELOC
160
250
  ebl->relative_reloc_p = EBLHOOK(relative_reloc_p);
161
250
#endif
162
250
}
arc_init.c:arc_init_reloc
Line
Count
Source
151
17
{
152
17
  ebl->reloc_type_name = EBLHOOK(reloc_type_name);
153
17
  ebl->reloc_type_check = EBLHOOK(reloc_type_check);
154
17
  ebl->reloc_valid_use = EBLHOOK(reloc_valid_use);
155
17
  ebl->none_reloc_p = EBLHOOK(none_reloc_p);
156
17
#ifndef NO_COPY_RELOC
157
17
  ebl->copy_reloc_p = EBLHOOK(copy_reloc_p);
158
17
#endif
159
17
#ifndef NO_RELATIVE_RELOC
160
17
  ebl->relative_reloc_p = EBLHOOK(relative_reloc_p);
161
17
#endif
162
17
}