blob: 9ca7b47fa8335dad72ca3f3ebf3db1e9b30b5094 [file] [log] [blame]
Mark Wielaarddf1708a2015-05-17 18:49:10 +020012015-05-17 Mark Wielaard <mjw@redhat.com>
2
3 * eblopenbackend.c (MAX_PREFIX_LEN): New define (16).
4 (openbackend): Stack allocate symname array using MAX_PREFIX_LEN.
5
Mark Wielaard858dc652015-01-27 13:07:17 +010062015-01-27 Mark Wielaard <mjw@redhat.com>
7
8 * libebl.h: Add comment from README that this is completely
9 UNSUPPORTED.
10
Mark Wielaard712c8fa2014-11-22 23:08:48 +0100112014-11-22 Mark Wielaard <mjw@redhat.com>
12
13 * ebl-hooks.h (bss_plt_p): Remove ehdr argument.
14 * eblbsspltp.c (ebl_bss_plt_p): Likewise.
15 * eblopenbackend.c (default_bss_plt_p): Likewise.
16 * libebl.h (ebl_bss_plt_p): Likewise.
17
Mark Wielaard5c1a45c2014-11-17 23:15:45 +0100182014-11-17 Mark Wielaard <mjw@redhat.com>
19
20 * ebldebugscnp.c (ebl_debugscn_p): Check name is not NULL.
21
Mark Wielaardc1c1c062014-06-14 17:15:37 +0200222014-06-17 Mark Wielaard <mjw@redhat.com>
23
24 * eblinitreg.c (ebl_func_addr_mask): New function.
25 * libebl.h (ebl_func_addr_mask): Define.
26 * libeblP.h (struct ebl): Add func_addr_mask.
27
Mark Wielaard028d0ab2014-05-19 16:52:56 +0200282014-05-19 Mark Wielaard <mjw@redhat.com>
29
30 * Makefile.am (gen_SOURCES): Add eblcheckreloctargettype.c.
31 * eblcheckreloctargettype.c: New file.
32 * ebl-hooks.h (check_reloc_target_type): New hook.
33 * eblopenbackend.c (default_check_reloc_target_type): New function.
34 (fill_defaults): Assign default_check_reloc_target_type to
35 check_reloc_target_type.
36 * libebl.h (ebl_check_reloc_target_type): New function definition.
37
Mark Wielaard159ac522013-12-18 11:05:54 +0100382013-12-18 Mark Wielaard <mjw@redhat.com>
39
40 * Makefile.am (gen_SOURCES): Add eblresolvesym.c.
41 * ebl-hooks.h (resolve_sym_value): New entry.
42 * eblresolvesym.c: New file.
43 * libebl.h (ebl_resolve_sym_value): New definition.
44 * libeblP.h (fd_addr): New field.
45 (fd_data): Likewise.
46
Jan Kratochvilc6a41482013-12-17 18:49:54 +0100472013-12-18 Jan Kratochvil <jan.kratochvil@redhat.com>
48
49 unwinder: s390 and s390x
50 * Makefile.am (gen_SOURCES): Add eblnormalizepc.c and eblunwind.c.
51 * ebl-hooks.h (normalize_pc, unwind): New.
52 * eblnormalizepc.c: New file.
53 * eblunwind.c: New file.
54 * libebl.h (Ebl_Register_Location): Add field pc_register.
55 (ebl_normalize_pc): New declaration.
56 (ebl_tid_registers_get_t, ebl_pid_memory_read_t): New definitions.
57 (ebl_unwind): New declaration.
58
Jan Kratochvil5cbf42a2013-12-15 18:56:17 +0100592013-12-15 Jan Kratochvil <jan.kratochvil@redhat.com>
60
61 unwinder: ppc and ppc64
62 * Makefile.am (gen_SOURCES): Add ebldwarftoregno.c.
63 * ebl-hooks.h (dwarf_to_regno): New.
64 * ebldwarftoregno.c: New file.
65 * libebl.h (Ebl_Core_Item): New field pc_register.
66 (ebl_tid_registers_t): Add FIRSTREG -1 to the comment.
67 (ebl_dwarf_to_regno): New.
68
Petr Machata98c8a732013-11-26 03:10:31 +0100692013-11-25 Petr Machata <pmachata@redhat.com>
70
71 * eblopenbackend.c (machines): Add entry for AArch64.
72
Jan Kratochvil1c1a53b2013-11-14 20:55:41 +0100732013-11-14 Jan Kratochvil <jan.kratochvil@redhat.com>
74
75 Code cleanup: Remove const in prototype
76 * libebl.h (ebl_tid_registers_t): Remove const from firstreg.
77
Jan Kratochvil0b867462013-05-30 14:37:38 +0200782013-11-07 Jan Kratochvil <jan.kratochvil@redhat.com>
79 Mark Wielaard <mjw@redhat.com>
80
81 * Makefile.am (gen_SOURCES): Add eblinitreg.c.
82 * ebl-hooks.h (set_initial_registers_tid): New entry.
83 * eblinitreg.c: New file.
84 * libebl.h (ebl_tid_registers_t): New definition.
85 (ebl_set_initial_registers_tid, ebl_frame_nregs): New declarations.
86 * libeblP.h (struct ebl): New entry frame_nregs.
87
Mark Wielaard3dec3e12013-10-06 17:04:07 +0200882013-10-06 Mark Wielaard <mjw@redhat.com>
89
90 * libebl.h (ebl_abi_cfi): Document restrictions using register
91 rules.
92
Petr Machatab43bcfe2013-09-26 00:38:37 +0200932013-09-26 Petr Machata <pmachata@redhat.com>
94
95 * eblcorenotetypename.c: Handle NT_ARM_TLS, NT_ARM_HW_BREAK,
96 NT_ARM_HW_WATCH, NT_SIGINFO, NT_FILE.
97
Mark Wielaard2cfec292013-09-25 13:02:53 +0200982013-09-25 Mark Wielaard <mjw@redhat.com>
99
100 * eblsectionstripp.c (ebl_section_strip_p): Check shdr_l is not NULL.
101
Mark Wielaardcdaaf212013-04-25 16:50:11 -04001022013-04-24 Mark Wielaard <mjw@redhat.com>
103
104 * Makefile.am: Use AM_CPPFLAGS instead of INCLUDES.
105
Jan Kratochvil0631d1f2012-10-12 20:43:21 +02001062012-10-12 Jan Kratochvil <jan.kratochvil@redhat.com>
107
108 * ebl-hooks.h (abi_cfi): Extend its comment for return value.
109 * eblopenbackend.c (default_abi_cfi): Return -1.
110 * libebl.h (ebl_abi_cfi): Extend its comment for return value.
111
Petr Machata96896012012-08-30 16:01:02 +02001122012-08-30 Petr Machata <pmachata@redhat.com>
113
114 * eblcorenotetypename.c: Handle PPC_VSX, X86_XSTATE,
115 S390_HIGH_GPRS, S390_TIMER, S390_TODCMP, S390_TODPREG, S390_CTRS,
116 S390_PREFIX, S390_LAST_BREAK, S390_SYSTEM_CALL, and ARM_VFP.
117
Jeff Kenton257dcf42012-08-22 09:00:03 -04001182012-08-22 Jeff Kenton <jkenton@tilera.com>
119
120 * eblopenbackend.c (machines): Add tilegx.
121
Mark Wielaarda0172d72012-06-25 17:18:53 +02001222011-06-26 Mark Wielaard <mjw@redhat.com>
123
124 * eblopenbackend.c (default_debugscn_p): Add .debug_macro.
125
Mark Wielaardbb9d1b42011-04-24 17:53:38 +02001262011-04-26 Mark Wielaard <mjw@redhat.com>
127
128 * libebl.h (ebl_object_note_type_name): Add const char *name arg.
129 * eblhooks.h (object_note_type_name): Likewise.
130 * eblopenbackend.c (default_object_note_type_name): Likewise.
131 * eblobjnotetypename.c (ebl_object_note_type_name): Likewise.
132 And print version if name is "stapsdt".
133 * eblobjnote.c (ebl_object_note): Add output for "stapsdt" notes.
134
Marek Polacekcde0b272011-03-21 23:46:56 +01001352011-03-21 Marek Polacek <mpolacek@redhat.com>
136
137 * ebldynamictagname.c: Fix typo in TLSDESC_GOT.
138
Mark Wielaarda062b6b2011-03-10 13:02:32 +01001392011-03-10 Mark Wielaard <mjw@redhat.com>
140
141 * Makefile.am (gen_SOURCES): Add eblstother.c.
142 * eblstother.c: New file.
143 * ebl-hooks.h: Add check_st_other_bits hook.
144 * eblopenbackend.c (default_check_st_other_bits): New function.
145 (fill_defaults): Hook default_check_st_other_bits.
146 * libebl.h (ebl_check_st_other_bits): New prototype.
147
Roland McGrath804e9ca2010-07-07 16:06:12 -07001482010-07-07 Roland McGrath <roland@redhat.com>
149
150 * eblopenbackend.c (default_debugscn_p): Match .gdb_index section.
151
Roland McGrath22359e22010-02-15 15:57:03 -08001522010-02-15 Roland McGrath <roland@redhat.com>
153
154 * Makefile.am: Use config/eu.am for common stuff.
155
Roland McGrath0ccbbcd2010-01-04 21:59:07 -08001562010-01-04 Roland McGrath <roland@redhat.com>
157
158 * eblcorenote.c (ebl_core_note): Take GElf_Nhdr * and name data
159 pointer instead of only n_type and n_descsz.
160 * libebl.h: Update declaration.
161 * ebl-hooks.h: Update core_note hook signature.
162 * eblopenbackend.c (default_core_note): Likewise.
163
Roland McGrathf80c9072009-10-14 12:35:47 -07001642009-10-14 Roland McGrath <roland@redhat.com>
165
166 * eblobjnote.c (ebl_object_note): Clean up NT_GNU_GOLD_VERSION printing.
167
Roland McGratha14b4eb2009-10-05 11:32:26 -07001682009-10-05 Roland McGrath <roland@redhat.com>
169
170 * eblopenbackend.c (default_debugscn_p): Match .debug_pubtypes and
171 .debug_types too.
172
Petr Machatad3a8b2d2009-09-02 20:46:08 +02001732009-09-02 Petr Machata <pmachata@redhat.com>
174
175 * libebl/eblstrtab.c (morememory): Allocate memory in multiples of
176 pagesize.
177
Petr Machata077a7082009-08-06 18:45:08 +02001782009-08-06 Petr Machata <pmachata@redhat.com>
179
180 * libebl/eblstrtab.c (ebl_strtabfinalize): Only call copystrings
181 if we have any strings to copy.
182
Mark Wielaardbc1b92e2009-07-26 08:33:18 -07001832009-07-26 Mark Wielaard <mjw@redhat.com>
184
Mark Wielaard2f5b79e2009-07-26 14:49:26 -0700185 * eblobjnote.c (ebl_object_note): Handle NT_GNU_GOLD_VERSION.
186
Mark Wielaardbc1b92e2009-07-26 08:33:18 -0700187 * eblobjnotetypename.c (ebl_object_note_type_name): Recognize
188 NT_GNU_GOLD_VERSION.
189
Roland McGrath3c84db32009-06-24 17:41:40 -07001902009-07-08 Roland McGrath <roland@redhat.com>
191
192 * ebl-hooks.h: Add abi_cfi hook.
193 * eblopenbackend.c (default_abi_cfi): New function.
194 (fill_defaults): Add initializer.
195 * eblabicfi.c: New file.
196 * Makefile.am (gen_SOURCES): Add it.
197 * libebl.h: Declare ebl_abi_cfi.
198
Ulrich Drepper70c442c2009-07-08 00:53:24 -07001992009-07-08 Ulrich Drepper <drepper@redhat.com>
200
201 * eblsymbolbindingname.c (ebl_symbol_binding_name): Handle
202 STB_GNU_UNIQUE.
203
204 * eblsymboltypename.c (ebl_symbol_type_name): Only handle STT_GNU_IFUNC
205 if the binary is marked as being for Linux.
206
Roland McGrathd5ff6672009-04-01 18:28:41 -07002072009-04-01 Roland McGrath <roland@redhat.com>
208
209 * eblsymboltypename.c (ebl_symbol_type_name): Add STT_GNU_IFUNC.
210
211 * eblauxvinfo.c (AUXV_TYPES): Add RANDOM and BASE_PLATFORM.
212
Ulrich Drepper95fa15e2009-02-01 19:06:10 -08002132009-02-01 Ulrich Drepper <drepper@redhat.com>
214
215 * eblreloctypename.c (ebl_reloc_type_name): Return "<INVALID RELOC>"
216 instead of "???" for invalid relocations.
217
Roland McGratha845f682008-12-03 03:41:58 +00002182008-08-01 Roland McGrath <roland@redhat.com>
219
220 * eblcorenotetypename.c: Handle NT_386_IOPERM.
221
Roland McGrath1d8bb252008-08-07 08:39:41 +00002222008-07-28 Roland McGrath <roland@redhat.com>
223
224 * eblauxvinfo.c (AUXV_TYPES): Add EXECFN.
225
226 * eblauxvinfo.c (ebl_auxv_info): Handle missing elements of standard
227 table.
228
2292008-07-04 Roland McGrath <roland@redhat.com>
230
231 * libebl.h: Declare ebl_syscall_abi.
232 * ebl_syscall_abi.c: New file.
233 * Makefile.am (gen_SOURCES): Add it.
234 * ebl-hooks.h: New hook syscall_abi.
235 * eblopenbackend.c (default_syscall_abi): New function.
236 (fill_defaults): Use it.
237
Roland McGrath13b69602008-04-01 02:30:05 +00002382008-03-31 Roland McGrath <roland@redhat.com>
239
240 * ebldynamictagname.c (ebl_dynamic_tag_name): Use hex for unknown tag.
241
242 * ebl-hooks.h: Add check_special_section hook.
243 * eblopenbackend.c (fill_defaults): Set new hook to ...
244 (default_check_special_section): ... this, new function.
245 * ebl_check_special_section.c: New file.
246 * Makefile.am (gen_SOURCES): Add it.
247 * libebl.h: Declare it.
248
Roland McGrath059c83e2008-02-21 06:19:39 +00002492008-02-20 Roland McGrath <roland@redhat.com>
250
251 * libebl.h: Declare ebl_check_object_attribute.
252 * eblcheckobjattr.c: New file.
253 * Makefile.am (gen_SOURCES): Add it.
254 * ebl-hooks.h: Add check_object_attribute hook.
255 * eblopenbackend.c (default_check_object_attribute): New function.
256 (fill_defaults): Initialize pointer to it.
257
2582008-02-19 Roland McGrath <roland@redhat.com>
259
260 * eblsectiontypename.c (ebl_section_type_name):
261 Handle SHT_GNU_ATTRIBUTES.
262
2632008-02-08 Roland McGrath <roland@redhat.com>
264
265 * eblcorenotetypename.c (ebl_core_note_type_name): Handle NT_PPC_SPE.
266
2672008-01-30 Roland McGrath <roland@redhat.com>
268
269 * eblcorenotetypename.c (ebl_core_note_type_name): Handle NT_386_TLS.
270
Roland McGrathe4c22ea2007-10-23 13:07:39 +00002712007-10-18 Roland McGrath <roland@redhat.com>
272
273 * eblcorenotetypename.c (ebl_core_note_type_name): Handle NT_PPC_VMX.
274
Ulrich Drepperb597dfa2007-10-16 05:21:27 +00002752007-10-11 Roland McGrath <roland@redhat.com>
276
277 * eblobjnote.c (ebl_object_note): Translate target format (byte-swap)
278 for NT_GNU_ABI_TAG contents.
279
Roland McGrathcb6d8652007-08-23 08:10:54 +00002802007-08-22 Roland McGrath <roland@redhat.com>
281
282 * libebl.h (Ebl_Core_Item): New member `group'.
283
2842007-08-19 Roland McGrath <roland@redhat.com>
285
286 * ebl-hooks.h: Add new hook auxv_info.
287 * eblopenbackend.c (default_auxv_info): New function.
288 (fill_defaults): Initialize auxv_info hook.
289 * eblauxvinfo.c : New file.
290 * Makefile.am (gen_SOURCES): Add it.
291 * libebl.h: Declare ebl_auxv_info.
292
293 * eblcorenote.c: Rewritten with new signature.
294 * Makefile.am (gen_SOURCES): Add it.
295 * libebl.h (Ebl_Register_Location, Ebl_Core_Item): New types.
296 (ebl_core_note_info): Completely revamp signature.
297 * ebl-hooks.h: Update decl.
298 * eblopenbackend.c (default_core_note): Update signature.
299
Roland McGrath87d47802007-07-16 22:23:37 +00003002007-07-09 Roland McGrath <roland@redhat.com>
301
302 * eblobjnotetypename.c (ebl_object_note_type_name): Handle
303 NT_GNU_HWCAP, NT_GNU_BUILD_ID.
304
305 * eblobjnote.c (ebl_object_note): Handle NT_GNU_BUILD_ID.
306
Roland McGrath4be15242007-04-25 03:09:33 +00003072007-04-22 Roland McGrath <roland@redhat.com>
308
309 * eblcorenotetypename.c (ebl_core_note_type_name): Handle NT_PRXFPREG.
310
Ulrich Drepperc07fbb32007-03-30 19:14:59 +00003112007-03-10 Roland McGrath <roland@redhat.com>
312
313 * eblcorenote.c (ebl_core_note): For normally-zero types,
314 print in hex if not zero.
315
Ulrich Drepperaa915fd2007-02-05 07:25:33 +00003162007-01-11 Roland McGrath <roland@redhat.com>
317
318 * ebl-hooks.h (machine_section_flag_check): New hook.
319 * libebl.h: Declare ebl_machine_section_flag_check.
320 * eblmachinesectionflagcheck.c: New file.
321 * Makefile.am (gen_SOURCES): Add it.
322 * eblopenbackend.c (default_machine_section_flag_check): New function.
323 (fill_defaults): Use it.
324
Roland McGrathc373d852006-10-10 00:25:21 +00003252006-09-04 Roland McGrath <roland@redhat.com>
326
327 * ebl-hooks.h: Replace register_name hook with register_info.
328 Also yield natural bit width and base type encoding.
329 * eblopenbackend.c (default_register_name): Renamed
330 default_register_info, new args added.
331 (fill_defaults): Update initialization.
332 * eblregname.c: File renamed ...
333 * eblreginfo.c: ... to this.
334 (ebl_register_name): Renamed to ebl_register_info, new args added.
335 * libebl.h: Update decl.
336
337 * Makefile.am (gen_SOURCES): Update list.
338
Ulrich Drepper28ed8952006-07-07 03:43:47 +00003392006-07-06 Ulrich Drepper <drepper@redhat.com>
340
341 * ebldynamictagname.c: Add support for DT_GNU_HASH.
342 * ebldynamictagcheck.c: Likewise.
343 * eblsectiontypename.c: Add support for SHT_GNU_HASH.
344
3452006-07-05 Ulrich Drepper <drepper@redhat.com>
346
347 * Makefile.am (gen_SOURCES): Add eblsysvhashentrysize.c.
348 * libeblP.h (struct ebl): Add sysvhash_entrysize element.
349 * eblopenbackend.c (fill_defaults): Initialize sysvhash_entrysize.
350
351 * eblopenbackend.c (openbackend): If possible, fill machine, class,
352 and data values in from the ELF file.
353
3542006-07-04 Ulrich Drepper <drepper@redhat.com>
355
356 * Makefile.am (gen_SOURCES): Add eblrelativerelocp.c.
357 * eblrelativerelocp.c: New file.
358 * ebl-hooks.c: Add relative_reloc_p.
359 * eblopenbackend.c (default_relative_reloc_p): New function.
360 (fill_defaults): Hook it up.
361 * libebl.h: Declare ebl_relative_reloc_p.
362
Ulrich Drepper6ca46002006-06-12 22:40:23 +00003632006-06-12 Ulrich Drepper <drepper@redhat.com>
364
365 * Makefile.am (gen_SOURCES): Add eblnonerelocp.c.
366 * eblnonerelocp.c: New file.
367 * ebl-hooks.c: Add none_reloc_p.
368 * eblopenbackend.c (default_none_reloc_p): New function.
369 (fill_defaults): Hook it up.
370 * libebl.h: Declare ebl_none_reloc_p.
371
Ulrich Drepper41cbd762006-05-27 18:19:23 +00003722006-05-27 Ulrich Drepper <drepper@redhat.com>
373
374 * libebl.h: Add extern "C".
375
Roland McGrath994b4892005-12-05 22:46:21 +00003762005-11-25 Roland McGrath <roland@redhat.com>
377
378 * eblregname.c: New file.
379 * Makefile.am (gen_SOURCES): Add it.
380 * ebl-hooks.h: Declare register_name hook.
381 * libebl.h: Declare ebl_register_name.
382 * eblopenbackend.c (default_register_name): New function.
383 (fill_defaults): Use it.
384
Roland McGrath215c6322005-11-16 22:46:04 +00003852005-11-16 Roland McGrath <roland@redhat.com>
386
387 * libebl.h: Use "" for elf-knowledge.h, not <>.
388
Roland McGrathe47ab762005-11-17 03:16:00 +00003892005-11-15 Roland McGrath <roland@redhat.com>
390
391 * Makefile.am: Removed everything for building libebl_*.so modules,
392 now in ../backends/Makefile.am instead.
393 * alpha_init.c: Moved to ../backends.
394 * alpha_reloc.def: Likewise.
395 * alpha_retval.c: Likewise.
396 * alpha_symbol.c: Likewise.
397 * arm_init.c: Likewise.
398 * arm_reloc.def: Likewise.
399 * arm_symbol.c: Likewise.
400 * common-reloc.c: Likewise.
401 * i386_corenote.c: Likewise.
402 * i386_init.c: Likewise.
403 * i386_reloc.def: Likewise.
404 * i386_retval.c: Likewise.
405 * i386_symbol.c: Likewise.
406 * ia64_init.c: Likewise.
407 * ia64_reloc.def: Likewise.
408 * ia64_symbol.c: Likewise.
409 * libebl_CPU.h: Likewise.
410 * ppc64_init.c: Likewise.
411 * ppc64_reloc.def: Likewise.
412 * ppc64_retval.c: Likewise.
413 * ppc64_symbol.c: Likewise.
414 * ppc_init.c: Likewise.
415 * ppc_reloc.def: Likewise.
416 * ppc_retval.c: Likewise.
417 * ppc_symbol.c: Likewise.
418 * s390_init.c: Likewise.
419 * s390_reloc.def: Likewise.
420 * s390_symbol.c: Likewise.
421 * sh_init.c: Likewise.
422 * sh_reloc.def: Likewise.
423 * sh_symbol.c: Likewise.
424 * sparc_init.c: Likewise.
425 * sparc_reloc.def: Likewise.
426 * sparc_symbol.c: Likewise.
427 * x86_64_corenote.c: Likewise.
428 * x86_64_init.c: Likewise.
429 * x86_64_reloc.def: Likewise.
430 * x86_64_retval.c: Likewise.
431 * x86_64_symbol.c: Likewise.
432
433 * libebl.h: Comment fixes.
434
435 * alpha_retval.c: New file.
436 * Makefile.am (alpha_SRCS): Add it.
437 * alpha_init.c (alpha_init): Initialize return_value_location hook.
438
439 * ppc64_retval.c: New file.
440 * Makefile.am (ppc64_SRCS): Add it.
441 * ppc64_init.c (ppc64_init): Initialize return_value_location hook.
442
443 * ppc_retval.c: New file.
444 * Makefile.am (ppc_SRCS): Add it.
445 * ppc_init.c (ppc_init): Initialize return_value_location hook.
446
Roland McGrathcd60ea82005-11-16 01:57:40 +00004472005-11-14 Roland McGrath <roland@redhat.com>
448
449 * ia64_init.c (ia64_init): Initialize EH->reloc_simple_type.
450 * sh_init.c (sh_init): Likewise.
451 * x86_64_init.c (x86_64_init): Likewise.
452
453 * sparc_symbol.c (sparc_reloc_simple_type): New function.
454 * sparc_init.c (sparc_init): Use it.
455
456 * arm_symbol.c (arm_reloc_simple_type): New function.
457 * arm_init.c (arm_init): Use it.
458
459 * alpha_symbol.c (alpha_reloc_simple_type): New function.
460 * alpha_init.c (alpha_init): Use it.
461
462 * ia64_reloc.def: Update bits per H. J. Lu <hjl@lucon.org>.
463
464 * arm_reloc.def: Update bits per Daniel Jacobowitz <drow@false.org>.
465
466 * alpha_reloc.def: Update bits per Richard Henderson <rth@redhat.com>.
467
Roland McGrathe47ab762005-11-17 03:16:00 +00004682005-11-13 Roland McGrath <roland@redhat.com>
469
470 * x86_64_retval.c: New file.
471 * Makefile.am (x86_64_SRCS): Add it.
472 * x86_64_init.c (x86_64_init): Use x86_64_return_value_location.
473
474 * i386_retval.c: New file.
475 * Makefile.am (i386_SRCS): Add it.
476 (libdw): New variable.
477 (libebl_%.so): Use $(libdw) in link; use --as-needed.
478 * i386_init.c (i386_init): Use i386_return_value_location.
479
480 * eblretval.c: New file.
481 * Makefile.am (gen_SOURCES): Add it.
482 (INCLUDES): Search in libdw.
483 * libebl.h: Include <libdw.h>. Declare ebl_return_value_location.
484 * ebl-hooks.h: Declare return_value_location hook.
485 * eblopenbackend.c (default_return_value_location): New function.
486 (fill_defaults): Use it.
487
Roland McGrathcd60ea82005-11-16 01:57:40 +00004882005-11-10 Roland McGrath <roland@redhat.com>
489
490 * s390_init.c: New file.
491 * s390_reloc.def: New file.
492 * s390_symbol.c: New file.
493 * Makefile.am (modules, libebl_pic): Add s390.
494 (s390_SRCS, libebl_s390_pic_a_SOURCES): New variables.
495 (am_libebl_s390_pic_a_OBJECTS): New variable.
496
497 * ppc64_init.c: Use common-reloc.c.
498 * ppc64_symbol.c (ppc64_backend_name): Removed.
499 (ppc64_reloc_type_check, ppc64_reloc_type_name): Likewise.
500 (ppc64_copy_reloc_p, ppc64_reloc_valid_use): Likewise.
501
502 * ppc_init.c: Use common-reloc.c.
503 * ppc_symbol.c (ppc_backend_name): Removed.
504 (ppc_reloc_type_name, ppc_reloc_type_check): Likewise.
505 (ppc_reloc_valid_use, ppc_copy_reloc_p): Likewise.
506
507 * sparc_init.c: Use common-reloc.c.
508 * sparc_symbol.c (sparc_backend_name): Removed.
509 (sparc_reloc_type_name, sparc_reloc_type_check): Likewise.
510 (sparc_copy_reloc_p): Likewise.
511
512 * arm_init.c: Use common-reloc.c.
513 * arm_symbol.c (arm_backend_name): Removed.
514 (arm_reloc_type_name, arm_reloc_type_check, arm_copy_reloc_p): Removed.
515
516 * alpha_init.c: Use common-reloc.c.
517 * alpha_symbol.c (alpha_backend_name): Removed.
518 (alpha_reloc_type_name, alpha_reloc_type_check): Likewise.
519 (alpha_copy_reloc_p): Likewise.
520
521 * ia64_symbol.c (ia64_backend_name): Removed.
522 (ia64_reloc_type_name, ia64_reloc_type_check): Likewise.
523 (ia64_copy_reloc_p): Likewise.
524
525 * x86_64_init.c: Use common-reloc.c.
526 * x86_64_symbol.c (x86_64_backend_name): Removed.
527 (x86_64_copy_reloc_p, x86_64_reloc_valid_use): Likewise.
528 (x86_64_reloc_type_check, x86_64_reloc_type_name): Likewise.
529
530 * sh_init.c: Use common-reloc.c.
531 * sh_symbol.c: All functions removed.
532 (sh_reloc_simple_type): New function.
533 (sh_gotpc_reloc_check): New function.
534
535 * common-reloc.c: New file.
536 * Makefile.am (noinst_HEADERS): Add it.
537 * i386_init.c: Include it.
538
539 * sh_reloc.def: New file.
540 * i386_reloc.def: New file.
541 * alpha_reloc.def: New file.
542 * arm_reloc.def: New file.
543 * i386_reloc.def: New file.
544 * ia64_reloc.def: New file.
545 * ppc64_reloc.def: New file.
546 * ppc_reloc.def: New file.
547 * sh_reloc.def: New file.
548 * sparc_reloc.def: New file.
549 * x86_64_reloc.def: New file.
550 * Makefile.am (EXTRA_DIST): Add $(modules:=_reloc.def).
551
552 * libebl_alpha.map: Removed.
553 * libebl_ia64.map: Removed.
554 * libebl_ppc.map: Removed.
555 * libebl_sparc.map: Removed.
556 * libebl_arm.map: Removed.
557 * libebl_i386.map: Removed.
558 * libebl_ppc64.map: Removed.
559 * libebl_sh.map: Removed.
560 * libebl_x86_64.map: Removed.
561 * Makefile.am (EXTRA_DIST): Remove them.
562 (libebl_%.map, libebl_%.so): New pattern rules.
563
564 * libebl_alpha.h: Removed.
565 * libebl_ia64.h: Removed.
566 * libebl_ppc.h: Removed.
567 * libebl_sparc.h: Removed.
568 * libebl_arm.h: Removed.
569 * libebl_i386.h: Removed.
570 * libebl_ppc64.h: Removed.
571 * libebl_sh.h: Removed.
572 * libebl_x86_64.h: Removed.
573 * Makefile.am (noinst_HEADERS): Remove them.
574
575 * x86_64_corenote.c: Use libebl_CPU.h instead.
576 * x86_64_symbol.c: Likewise.
577 * i386_corenote.c: Likewise.
578
5792005-11-09 Roland McGrath <roland@redhat.com>
580
581 * ia64_symbol.c (ia64_reloc_simple_type): New function.
582
583 * ebl-hooks.h (reloc_simple_type): Take the Ebl handle, not Elf handle.
584 * eblrelocsimpletype.c (ebl_reloc_simple_type): Update caller.
585 * eblopenbackend.c (default_reloc_simple_type): Update signature.
586 * i386_symbol.c (i386_reloc_simple_type): Likewise.
587 * ppc64_symbol.c (ppc64_reloc_simple_type): Likewise.
588 * ppc_symbol.c (ppc_reloc_simple_type): Likewise.
589 * x86_64_symbol.c (x86_64_reloc_simple_type): Likewise.
590
591 * i386_symbol.c (i386_backend_name): Removed.
592 (i386_reloc_type_name, i386_reloc_type_check): Likewise.
593 (i386_reloc_valid_use): Removed.
594 (i386_copy_reloc_p): Removed.
595
596 * alpha_destr.c: Removed.
597 * arm_destr.c: Removed.
598 * i386_destr.c: Removed.
599 * ia64_destr.c: Removed.
600 * ppc64_destr.c: Removed.
601 * ppc_destr.c: Removed.
602 * sh_destr.c: Removed.
603 * sparc_destr.c: Removed.
604 * x86_64_destr.c: Removed.
605
606 * ebl-hooks.h: New file, broken out of ...
607 * libeblP.h (struct ebl): ... here. #include that for hook
608 declarations, after defining EBLHOOK macro.
609 * libebl_CPU.h: New file.
610 * Makefile.am (noinst_HEADERS): Add them.
611
612 * libeblP.h (struct ebl): Use uint_fast16_t for machine,
613 and uint_fast8_t for class and data.
614
6152005-08-14 Roland McGrath <roland@redhat.com>
616
617 * ia64_symbol.c (ia64_section_type_name): New function.
618 (ia64_dynamic_tag_check): New function.
619 (ia64_reloc_valid_use): New function.
620 * libebl_ia64.h: Declare them.
621 * ia64_init.c (ia64_init): Use them.
622 * Makefile.am (libebl_ia64.so): Link with libelf.
623
Ulrich Drepperfbe998a2005-08-29 16:27:10 +00006242005-08-28 Ulrich Drepper <drepper@redhat.com>
625
626 * Makefile.am: Use $(LINK) not $(CC) when creating DSOs.
627
Roland McGrathe53d04a2005-08-13 20:56:07 +00006282005-08-13 Roland McGrath <roland@redhat.com>
629
630 * ia64_symbol.c (ia64_machine_flag_check): New function.
631 * libebl_ia64.h: Declare it.
632 * ia64_init.c (ia64_init): Use it.
633
Ulrich Drepperc5c33a62005-08-13 17:50:47 +00006342005-08-13 Ulrich Drepper <drepper@redhat.com>
635
636 * libebl.h: Add ehdr parameter to ebl_bss_plt_p and
637 ebl_check_special_symbol.
638 * libeblP.h (struct ebl): Adjust callback functions.
639 * eblopenbackend.c: Adjust dummy functions.
640 * ebl_check_special_symbol.c: Add parameter and pass it on.
641 * eblbsspltp.c: Likewise.
642 * ppc_symbol.c (find_dyn_got): With ehdr passed, simplify search for
643 the dynamic section entry.
644 (ppc_check_special_symbol): Add ehdr parameter.
645 (ppc_bss_plt_p): Likewise.
646 * libebl_ppc.h: Adjust prototypes.
647 * ppc64_symbol.c (ppc_check_special_symbol): Add ehdr parameter.
648 (ppc_bss_plt_p): Likewise.
649 * libebl_ppc64.h: Adjust prototypes.
650
Roland McGrath653d3762005-08-13 01:59:10 +00006512005-08-12 Roland McGrath <roland@redhat.com>
652
Roland McGrathf8873cb2005-08-13 03:26:06 +0000653 * ppc_symbol.c (find_dyn_got): New function, broken out of ...
654 (ppc_bss_plt_p): ... here. Call that.
655 (ppc_check_special_symbol): Use find_dyn_got to fetch value to check
656 against _GLOBAL_OFFSET_TABLE_.
657
Roland McGrath653d3762005-08-13 01:59:10 +0000658 * libeblP.h (struct ebl): Add bss_plt_p hook.
659 * eblopenbackend.c (default_bss_plt_p): New function.
660 (fill_defaults): Use it.
661 * eblbsspltp.c: New file.
662 * Makefile.am (gen_SOURCES): Add it.
663 * libebl.h: Declare ebl_bss_plt_p.
664 * ppc_symbol.c (ppc_bss_plt_p): New function.
665 * libebl_ppc.h: Declare it.
666 * ppc_init.c (ppc_init): Use it.
667 * ppc64_symbol.c (ppc64_bss_plt_p): New function.
668 * libebl_ppc64.h: Declare it.
669 * ppc64_init.c (ppc64_init): Use it.
670
671 * ebl_check_special_symbol.c: New file.
672 * Makefile.am (gen_SOURCES): Add it.
673 * libebl.h: Declare ebl_check_special_symbol.
674 * libeblP.h (struct ebl): Add check_special_symbol hook.
675 * eblopenbackend.c (default_check_special_symbol): New function.
676 (fill_defaults): Use it.
677 * ppc_symbol.c (ppc_check_special_symbol): New function.
678 * libebl_ppc.h: Add prototype.
679 * ppc_init.c (ppc_init): Use it.
680 * ppc64_symbol.c (ppc64_check_special_symbol): New function.
681 * libebl_ppc64.h: Add prototype.
682 * ppc64_init.c (ppc64_init): Use it.
683
Ulrich Drepperb03b0572005-08-07 08:12:22 +00006842005-08-07 Ulrich Drepper <drepper@redhat.com>
685
686 * ppc_init.c: Add support for new DT_PPC_* and R_PPC_* values.
687 * ppc_symbol.c: Likewise.
688 * libebl_ppc.h: Likewise.
689 * ppc64_init.c: There is now also a dynamic_tag_check functions
690 * ppc64_symbol.c: Add dynamic_tag_check.
691 * libebl_ppc64.h: Add prototype.
692 * alpha_init.c: Add support for new DT_ALPHA_* value.
693 * alpha_symbol.c: Likewise.
694 * libebl_alpha.h: Likewise.
695
Ulrich Drepper6fcb3832005-08-03 21:10:49 +00006962005-08-03 Ulrich Drepper <drepper@redhat.com>
697
698 * libebl_alpha.map: Remove unnecessary exports.
699 * libebl_arm.map: Likewise.
700 * libebl_i386.map: Likewise.
701 * libebl_ia64.map: Likewise.
702 * libebl_ppc.map: Likewise.
703 * libebl_ppc64.map: Likewise.
704 * libebl_sh.map: Likewise.
705 * libebl_sparc.map: Likewise.
706 * libebl_x86_64.map: Likewise.
707
Ulrich Dreppera38998e2005-08-03 02:05:39 +00007082005-08-02 Ulrich Drepper <drepper@redhat.com>
709
710 * Makefile.am (libebl_a_SOURCES): Add eblelfclass.c, eblelfdata.c,
711 and eblelfmachine.c.
712 * elbopenbackend.c (machines): Add class and data fields. Initialize
713 them.
714 (ebl_openbackend): Initialize machine, class, data fields in result.
715 * libebl.h: Declare Add eblelfclass, eblelfdata, and eblelfmachine.
716 * libeblP.h (Ebl): Add machine, class, data fields.
717
Ulrich Drepperb08d5a82005-07-26 05:00:05 +00007182005-07-23 Ulrich Drepper <drepper@redhat.com>
719
720 * eblsectionstripp.c: New file.
721 * Makefile.am (gen_SOURCES): Add eblsectionstripp.c.
722 * i386_init.c (i386_init): Install specific debugscn_p callback.
723 * i386_symbol.c (i386_debugscn_p): New function.
724 * libebl.h: Declare ebl_section_strip_p.
725 * libebl_i386.h: Declare i386_debugscn_p.
726
727 * libebl.h: Move Ebl definition to...
728 * libeblP.h: ...here.
729
7302005-07-21 Roland McGrath <roland@redhat.com>
731
732 * Makefile.am (install-ebl-modules): New target, commands from ...
733 (install): ... here. Make this depend on it.
734 (LIBEBL_SUBDIR): New variable, substituted by configure.
735 (install-ebl-modules): Install in $(libdir)/$(LIBEBL_SUBDIR).
736 * eblopenbackend.c (openbackend): Use LIBEBL_SUBDIR in module name.
737
7382005-07-21 Ulrich Drepper <drepper@redhat.com>
739
740 * eblcopyrelocp.c: New file.
741 * Makefile.am (gen_SOURCES): Add eblcopyrelocp.c.
742 * libebl.h: Declare ebl_copy_reloc_p.
743 * eblopenbackend.c (fill_defaults): Fill in copy_reloc_p.
744 (default_copy_reloc_p): New function.
745 * alpha_init.c: Define and use arch-specific copy_reloc_p function.
746 * alpha_symbol.c: Likewise.
747 * arm_init.c: Likewise.
748 * arm_symbol.c: Likewise.
749 * i386_init.c: Likewise.
750 * i386_symbol.c: Likewise.
751 * ia64_init.c: Likewise.
752 * ia64_symbol.c: Likewise.
753 * ppc64_init.c: Likewise.
754 * ppc64_symbol.c: Likewise.
755 * ppc_init.c: Likewise.
756 * ppc_symbol.c: Likewise.
757 * sh_init.c: Likewise.
758 * sh_symbol.c: Likewise.
759 * sparc_init.c: Likewise.
760 * sparc_symbol.c: Likewise.
761 * x86_64_init.c: Likewise.
762 * x86_64_symbol.c: Likewise.
763 * libebl_alpha.h: Declare the copy_reloc_p function.
764 * libebl_arm.h: Likewise.
765 * libebl_i386.h: Likewise.
766 * libebl_ia64.h: Likewise.
767 * libebl_ppc.h: Likewise.
768 * libebl_ppc64.h: Likewise.
769 * libebl_sh.h: Likewise.
770 * libebl_sparc.h: Likewise.
771 * libebl_x86_64.h: Likewise.
772
7732005-05-31 Roland McGrath <roland@redhat.com>
774
775 * Makefile.am (libebl_*_so_SOURCES): Set to $(*_SRCS) so dependency
776 tracking works right.
777
7782005-05-21 Ulrich Drepper <drepper@redhat.com>
779
780 * libebl_x86_64.map: Add x86_64_core_note.
781
7822005-05-19 Roland McGrath <roland@redhat.com>
783
784 * libebl_i386.map: Add i386_reloc_valid_use, i386_reloc_simple_type.
785 * libebl_ppc.map: Add ppc_reloc_simple_type.
786 * libebl_ppc64.map: Add ppc64_reloc_simple_type.
787 * libebl_x86_64.map: Add x86_64_reloc_simple_type.
788
7892005-05-11 Ulrich Drepper <drepper@redhat.com>
790
791 * eblcorenote.c: Handle new AT_* values and files with different
792 endianess.
793 * Makefile.am (x86_64_SRCS): Add x86_64_corenote.c.
794 * x86-64_corenote.c: New file.
795 * x86_64_init.c: Hook in x86_64_corenote.
796 * i386_corenote.c: Make file usable on 64-bit platforms.
797
798 * eblopenbackend.c: If modules version comparison fails, reinitialize
799 hooks.
800
8012005-05-10 Ulrich Drepper <drepper@redhat.com>
802
803 * eblopenbackend.c: Require the init function to return a string.
804 Compare it with MODVERSION from config.h.
805 * alpha_init.c: Change return type. Return MODVERSION or NULL.
806 * arm_init.c: Likewise.
807 * eblopenbackend.c: Likewise.
808 * i386_init.c: Likewise.
809 * ia64_init.c: Likewise.
810 * ppc64_init.c: Likewise.
811 * ppc_init.c: Likewise.
812 * sh_init.c: Likewise.
813 * sparc_init.c: Likewise.
814 * x86_64_init.c: Likewise.
815 * libeblP.h: Adjust ebl_bhinit_t.
816 * libebl_alpha.h: Adjust init function prototype.
817 * libebl_arm.h: Likewise.
818 * libebl_i386.h: Likewise.
819 * libebl_ia64.h: Likewise.
820 * libebl_ppc.h: Likewise.
821 * libebl_ppc64.h: Likewise.
822 * libebl_sh.h: Likewise.
823 * libebl_sparc.h: Likewise.
824 * libebl_x86_64.h: Likewise.
825
826 * mips_destr.c: Removed.
827 * mips_init.c: Removed.
828 * mips_symbol.c: Removed.
829 * libebl_mips.h: Removed.
830 * libebl_mips.map: Removed.
831
8322005-05-03 Roland McGrath <roland@redhat.com>
833
834 * libebl.h (Ebl): Add `reloc_simple_type' member.
835 * eblopenbackend.c (default_reloc_simple_type): New function.
836 (openbackend): Use that as default reloc_simple_type callback.
837 * eblrelocsimpletype.c: New file.
838 * Makefile.am (gen_SOURCES): Add it.
839 * i386_symbol.c (i386_reloc_simple_type): New function.
840 * libebl_i386.h: Declare it.
841 * i386_init.c (i386_init): Use it.
842 * x86_64_symbol.c (x86_64_reloc_simple_type): New function.
843 * libebl_x86_64.h: Declare it.
844 * x86_64_init.c (x86_64_init): Use it.
845 * ppc_symbol.c (ppc_reloc_simple_type): New function.
846 * libebl_ppc.h: Declare it.
847 * ppc_init.c (ppc_init): Use it.
848 * ppc64_symbol.c (ppc64_reloc_simple_type): New function.
849 * libebl_ppc64.h: Declare it.
850 * ppc64_init.c (ppc64_init): Use it.
851
8522005-03-17 Ulrich Drepper <drepper@redhat.com>
853
854 * eblcorenote.c (ebl_core_note): Add support for AT_SECURE.
855
8562005-02-15 Ulrich Drepper <drepper@redhat.com>
857
858 * Makefile.am (AM_CFLAGS): Add -Wformat=2.
859
8602005-02-14 Ulrich Drepper <drepper@redhat.com>
861
862 * alpha_destr.c: Add __attribute__((unused)) where needed.
863 * alpha_init.c: Likewise.
864 * alpha_symbol.c: Likewise.
865 * arm_destr.c: Likewise.
866 * arm_init.c: Likewise.
867 * arm_symbol.c: Likewise.
868 * i386_corenote.c: Likewise.
869 * i386_destr.c: Likewise.
870 * i386_init.c: Likewise.
871 * i386_symbol.c: Likewise.
872 * ia64_destr.c: Likewise.
873 * ia64_init.c: Likewise.
874 * ia64_symbol.c: Likewise.
875 * mips_destr.c: Likewise.
876 * mips_init.c: Likewise.
877 * mips_symbol.c: Likewise.
878 * ppc64_destr.c: Likewise.
879 * ppc64_init.c: Likewise.
880 * ppc64_symbol.c: Likewise.
881 * ppc_destr.c: Likewise.
882 * ppc_init.c: Likewise.
883 * ppc_symbol.c: Likewise.
884 * sh_destr.c: Likewise.
885 * sh_init.c: Likewise.
886 * sh_symbol.c: Likewise.
887 * sparc_destr.c: Likewise.
888 * sparc_init.c: Likewise.
889 * sparc_symbol.c: Likewise.
890 * x86_64_destr.c: Likewise.
891 * x86_64_init.c: Likewise.
892 * x86_64_symbol.c: Likewise.
893
894 * x86_64_symbol.c (reloc_map_table): Fix entries for R_X86_64_64
895 and R_X86_64_32..
896
8972005-02-06 Ulrich Drepper <drepper@redhat.com>
898
899 * eblstrtab.c: A few cleanups.
900
901 * eblopenbackend.c: Mark unused parameters.
902
903 * eblgstrtab.c: Cleanups a few printf format strings.
904
905 * Makefile.am: Cleanup AM_CFLAGS handling. Add -Wunused -Wextra.
906
9072005-02-05 Ulrich Drepper <drepper@redhat.com>
908
909 * Makefile.am: Check for text relocations in constructed DSOs.
910
911 * eblstrtab.c: Minor cleanups.
912
913 * Makefile.am (AM_CFLAGS): Add -std=gnu99 and -fmudflap for MUDFLAP.
914
9152004-08-16 Ulrich Drepper <drepper@redhat.com>
916
917 * Makefile.am (AM_CFLAGS): Add LIBSTR definition with base name of
918 the lib directory.
919 * eblopenbackend.c (openbackend): Use LIBSTR instead of hardcoded
920 lib in path to ebl modules.
921
9222004-04-01 Ulrich Drepper <drepper@redhat.com>
923
924 * Makefile.am: Add rules for ppc and ppc64 ebl module.
925 * ppc_init..c: New file.
926 * ppc_destr.c: New file.
927 * ppc_symbol.c: New file.
928 * libebl_ppc.h: New file.
929 * libebl_ppc.map: New file.
930 * ppc64_init..c: New file.
931 * ppc64_destr.c: New file.
932 * ppc64_symbol.c: New file.
933 * libebl_ppc64.h: New file.
934 * libebl_ppc64.map: New file.
935
9362004-01-20 Ulrich Drepper <drepper@redhat.com>
937
938 * Makefile.am: Support building with mudflap.
939
9402004-01-18 Ulrich Drepper <drepper@redhat.com>
941
942 * libeblP.h (_): Use elfutils domain.
943
9442004-01-16 Ulrich Drepper <drepper@redhat.com>
945
946 * eblsectionname.c: Add support for SHN_BEFORE and SHN_AFTER.
947
9482004-01-13 Ulrich Drepper <drepper@redhat.com>
949
950 * eblsegmenttypename.c ((ebl_segment_type_name): Add support for
951 PT_GNU_RELRO.
952
9532004-01-08 Ulrich Drepper <drepper@redhat.com>
954
955 * libebl.h: Remove last traces of libtool.
956
9572004-01-05 Ulrich Drepper <drepper@redhat.com>
958
959 * elf-knowledge.h: Move to libelf subdir.
960
961 * Makefile.am (EXTRA_DIST): Remove libebl.map.
962 * libebl.map: Removed.
963
9642003-12-08 Ulrich Drepper <drepper@redhat.com>
965
966 * eblsectiontypename.c (ebl_section_type_name): Add support for
967 SHT_SUNW_move, SHT_CHECKSUM, and SHT_GNU_LIBLIST.
968
9692003-11-19 Ulrich Drepper <drepper@redhat.com>
970
971 * ia64_symbol.c (ia64_dynamic_tag_name): New function.
972 * libebl_ia64.h (ia64_dynamic_tag_name): Declare.
973 * ia64_init.c (ia64_init): Register i164_dynamic_tag_name.
974
9752003-09-24 Ulrich Drepper <drepper@redhat.com>
976
977 * ia64_init.c (ia64_init): Initialize segment_type_name callback.
978 * ia64_symbol.c (ia64_segment_type_name): Define.
979 * libebl_ia64.h (ia64_segment_type_name): Declare.
980
9812003-09-22 Ulrich Drepper <drepper@redhat.com>
982
983 * Makefile.am (AM_CFLAGS): Add -fpic.
984
9852003-08-14 Ulrich Drepper <drepper@redhat.com>
986
987 * Makefile.am (install): Remove dependency on libebl.so.
988
9892003-08-13 Ulrich Drepper <drepper@redhat.com>
990
991 * eblopenbackend.c: Adjust relative path to arch-specific DSOs
992 assuming the code ends up in the application. Add second dlopen()
993 try without any path, just the filename.
994 * Makefile.in: Remove rules to build and install libebl.so.
995
9962003-08-11 Ulrich Drepper <drepper@redhat.com>
997
998 * Moved to CVS archive.