Change calling convention of dwarf_getmacros to allow opcode 0xff
[platform/upstream/elfutils.git] / NEWS
1 Version 0.161
2
3 libdw: New function dwarf_peel_type. dwarf_aggregate_size now uses
4        dwarf_peel_type to also provide the sizes of qualified types.
5        dwarf_getmacros will now serve either of .debug_macro and
6        .debug_macinfo transparently.  New interfaces
7        dwarf_getmacros_off, dwarf_macro_getsrcfiles,
8        dwarf_macro_getparamcnt, and dwarf_macro_param are available
9        for more generalized inspection of macros and their parameters.
10
11 Version 0.160
12
13 libdw: New functions dwarf_cu_getdwarf, dwarf_cu_die.
14        dwarf.h remove non-existing DW_TAG_mutable_type.
15
16 libdwfl: Handle LZMA .ko.xz compressed kernel modules.
17
18 unstrip: New option -F, --force to combining files even if some ELF headers
19          don't seem to match.
20
21 backends: Handle ARM THUMB functions. Add support for ppc64le ELFv2 abi.
22
23 Version 0.159
24
25 stack: New option -d, --debugname to lookup DWARF debuginfo name for frame.
26        New option -i, --inlines to show inlined frames using DWARF debuginfo.
27
28 libdwelf: New libdwelf.h header for libdw.so DWARF ELF Low-level Functions.
29           New function dwelf_elf_gnu_debuglink, dwelf_dwarf_gnu_debugaltlink,
30           and dwelf_elf_gnu_build_id.
31
32 libdw: Support for DWZ multifile forms DW_FORM_GNU_ref_alt and
33        DW_FORM_GNU_strp_alt is now enabled by default and no longer
34        experimental. Added new functions dwarf_getalt and dwarf_setalt
35        to get or set the alternative debug file used for the alt FORMs.
36        The dwfl_linux_proc_find_elf callback will now find ELF from
37        process memory for (deleted) files if the Dwfl has process state
38        attached.
39
40 libdwfl: The dwfl_build_id_find_debuginfo and dwfl_standard_find_debuginfo
41          functions will now try to resolve and set the alternative debug file.
42
43 backends: Add CFI unwinding for arm. Relies on .debug_frame.
44           Add arm process initial register state compatible mode to AARCH64.
45           Add aarch64 native and core unwind support.
46
47 other: All separate elfutils-robustify patches have been merged.
48        CVE-2014-0172 Check overflow before calling malloc to uncompress data.
49
50 Version 0.158
51
52 libdwfl: dwfl_core_file_report has new parameter executable.
53          New functions dwfl_module_getsymtab_first_global,
54          dwfl_module_getsym_info and dwfl_module_addrinfo.
55          Added unwinder with type Dwfl_Thread_Callbacks, opaque types
56          Dwfl_Thread and Dwfl_Frame and functions dwfl_attach_state,
57          dwfl_pid, dwfl_thread_dwfl, dwfl_thread_tid, dwfl_frame_thread,
58          dwfl_thread_state_registers, dwfl_thread_state_register_pc,
59          dwfl_getthread_frames, dwfl_getthreads, dwfl_thread_getframes
60          and dwfl_frame_pc.
61
62 addr2line: New option -x to show the section an address was found in.
63
64 stack: New utility that uses the new unwinder for processes and cores.
65
66 backends: Unwinder support for i386, x86_64, s390, s390x, ppc and ppc64.
67           aarch64 support.
68
69 Version 0.157
70
71 libdw: Add new functions dwarf_getlocations, dwarf_getlocation_attr
72        and dwarf_getlocation_die.
73
74 readelf: Show contents of NT_SIGINFO and NT_FILE core notes.
75
76 addr2line: Support -i, --inlines output option.
77
78 backends: abi_cfi hook for arm, ppc and s390.
79
80 Version 0.156
81
82 lib: New macro COMPAT_VERSION_NEWPROTO.
83
84 libdw: Handle GNU extension opcodes in dwarf_getlocation.
85
86 libdwfl: Fix STB_GLOBAL over STB_WEAK preference in dwfl_module_addrsym.
87          Add minisymtab support.
88          Add parameter add_p_vaddr to dwfl_report_elf.
89          Use DT_DEBUG library search first.
90
91 libebl: Handle new core note types in EBL.
92
93 backends: Interpret NT_ARM_VFP.
94           Implement core file registers parsing for s390/s390x.
95
96 readelf: Add --elf-section input option to inspect an embedded ELF file.
97          Add -U, --unresolved-address-offsets output control.
98          Add --debug-dump=decodedline support.
99          Accept version 8 .gdb_index section format.
100          Adjust output formatting width.
101          When highpc is in constant form print it also as address.
102          Display raw .debug_aranges. Use libdw only for decodedaranges.
103
104 elflint: Add __bss_start__ to the list of allowed symbols.
105
106 tests: Add configure --enable-valgrind option to run all tests under valgrind.
107        Enable automake parallel-tests for make check.
108
109 translations: Updated Polish translation.
110
111 Updates for Automake 1.13.
112
113 Version 0.155
114
115 libelf: elf*_xlatetomd now works for cross-endian ELF note data.
116         elf_getshdr now works consistently on non-mmaped ELF files after
117         calling elf_cntl(ELF_C_FDREAD).
118         Implement support for ar archives with 64-bit symbol table.
119
120 libdw: dwarf.h corrected the DW_LANG_ObjC constant name (was DW_LANG_Objc).
121        Any existing sources using the old name will have to be updated.
122        Add DW_MACRO_GNU .debug_macro type encodings constants, DW_ATE_UTF
123        and DW_OP_GNU_parameter_ref to dwarf.h.
124        Experimental support for DWZ multifile forms DW_FORM_GNU_ref_alt
125        and DW_FORM_GNU_strp_alt.  Disabled by default.  Use configure
126        --enable-dwz to test it.
127
128 readelf: Add .debug_macro parsing support.
129          Add .gdb_index version 7 parsing support.
130          Recognize DW_OP_GNU_parameter_ref.
131
132 backends: Add support for Tilera TILE-Gx processor.
133
134 translations: Updated Ukrainian translation.
135
136 Version 0.154
137
138 libelf: [g]elf[32|64]_offscn() do not match SHT_NOBITS sections at OFFSET.
139
140 libdw: dwarf_highpc function now handles DWARF 4 DW_AT_high_pc constant form.
141        Fix bug using dwarf_next_unit to iterate over .debug_types.
142
143 elflint: Now accepts gold linker produced executables.
144
145 The license is now GPLv2/LGPLv3+ for the libraries and GPLv3+ for stand-alone
146 programs. There is now also a formal CONTRIBUTING document describing how to
147 submit patches.
148
149 Version 0.153
150
151 libdw: Support reading .zdebug_* DWARF sections compressed via zlib.
152
153 libdwfl: Speed up dwfl_module_addrsym.
154
155 nm: Support C++ demangling.
156
157 ar: Support D modifier for "deterministic output" with no uid/gid/mtime info.
158     The U modifier is the inverse.
159     elfutils can be configured with the --enable-deterministic-archives
160     option to make the D behavior the default when U is not specified.
161
162 ranlib: Support -D and -U flags with same meaning.
163
164 readelf: Improve output of -wline. Add support for printing SDT elf notes.
165          Add printing of .gdb_index section.
166          Support for typed DWARF stack, call_site and entry_value.
167
168 strip: Add --reloc-debug-sections option.
169        Improved SHT_GROUP sections handling.
170
171 Version 0.152
172
173 Various build and warning nits fixed for newest GCC and Autoconf.
174
175 libdwfl: Yet another prelink-related fix for another regression.
176          Look for Linux kernel images in files named with compression suffixes.
177
178 elfcmp: New flag --ignore-build-id to ignore differing build ID bits.
179         New flag -l/--verbose to print all differences.
180
181 Version 0.151
182
183 libdwfl: Fix for more prelink cases with separate debug file.
184
185 strip: New flag --strip-sections to remove section headers entirely.
186
187 Version 0.150
188
189 libdw: Fix for handling huge .debug_aranges section.
190
191 libdwfl: Fix for handling prelinked DSO with separate debug file.
192
193 findtextrel: Fix diagnostics to work with usual section ordering.
194
195 libebl: i386 backend fix for multi-register integer return value location.
196
197 Version 0.149:
198
199 libdw: Decode new DW_OP_GNU_implicit_pointer operation;
200        new function dwarf_getlocation_implicit_pointer.
201
202 libdwfl: New function dwfl_dwarf_line.
203
204 addr2line: New flag -F/--flags to print more DWARF line information details.
205
206 strip: -g recognizes .gdb_index as a debugging section.
207
208 Version 0.148:
209
210 libdw: Accept DWARF 4 format: new functions dwarf_next_unit, dwarf_offdie_types.
211        New functions dwarf_lineisa, dwarf_linediscriminator, dwarf_lineop_index.
212
213 libdwfl: Fixes in core-file handling, support cores from PIEs.
214          When working from build IDs, don't open a named file that mismatches.
215
216 readelf: Handle DWARF 4 formats.
217
218 Version 0.147:
219
220 libdw: Fixes in CFI handling, best possible handling of bogus CFA ops.
221
222 libdwfl: Ignore R_*_NONE relocs, works around old (binutils) ld -r bugs.
223
224 Version 0.146:
225
226 libdwfl: New function dwfl_core_file_report.
227
228 Version 0.145:
229
230 Fix build with --disable-dependency-tracking.
231
232 Fix build with most recent glibc headers.
233
234 libelf: More robust to bogus section headers.
235
236 libdw: Fix CFI decoding.
237
238 libdwfl: Fix address bias returned by CFI accessors.
239          Fix core file module layout identification.
240
241 readelf: Fix CFI decoding.
242
243 Version 0.144:
244
245 libelf: New function elf_getphdrnum.
246         Now support using more than 65536 program headers in a file.
247
248 libdw: New function dwarf_aggregate_size for computing (constant) type
249        sizes, including array_type cases with nontrivial calculation.
250
251 readelf: Don't give errors for missing info under -a.
252          Handle Linux "VMCOREINFO" notes under -n.
253
254 Version 0.143:
255
256 libdw: Various convenience functions for individual attributes now use
257        dwarf_attr_integrate to look up indirect inherited attributes.
258        Location expression handling now supports DW_OP_implicit_value.
259
260 libdwfl: Support automatic decompression of files in XZ format,
261          and of Linux kernel images made with bzip2 or LZMA (as well as gzip).
262
263 Version 0.142:
264
265 libelf: Add elf_getshdrnum alias for elf_getshnum and elf_getshdrstrndx alias
266         for elf_getshstrndx and deprecate original names.  Sun screwed up
267         their implementation and asked for a solution.
268
269 libebl: Add support for STB_GNU_UNIQUE.
270
271 elflint: Add support for STB_GNU_UNIQUE.
272
273 readelf: Add -N option, speeds up DWARF printing without address->name lookups.
274
275 libdw: Add support for decoding DWARF CFI into location description form.
276        Handle some new DWARF 3 expression operations previously omitted.
277        Basic handling of some new encodings slated for DWARF 4.
278
279 Version 0.141:
280
281 libebl: sparc backend fixes;
282         some more arm backend support
283
284 libdwfl: fix dwfl_module_build_id for prelinked DSO case;
285          fixes in core file support;
286          dwfl_module_getsym interface improved for non-address symbols
287
288 strip: fix infinite loop on strange inputs with -f
289
290 addr2line: take -j/--section=NAME option for binutils compatibility
291            (same effect as '(NAME)0x123' syntax already supported)
292
293 Version 0.140:
294
295 libelf: Fix regression in creation of section header
296
297 libdwfl: Less strict behavior if DWARF reader ist just used to display data
298
299 Version 0.139:
300
301 libcpu: Add Intel SSE4 disassembler support
302
303 readelf: Implement call frame information and exception handling dumping.
304          Add -e option.  Enable it implicitly for -a.
305
306 elflint: Check PT_GNU_EH_FRAME program header entry.
307
308 libdwfl: Support automatic gzip/bzip2 decompression of ELF files.
309
310 Version 0.138:
311
312 Install <elfutils/version.h> header file for applications to use in source
313 version compatibility checks.
314
315 libebl: backend fixes for i386 TLS relocs; backend support for NT_386_IOPERM
316
317 libcpu: disassembler fixes
318
319 libdwfl: bug fixes
320
321 libelf: bug fixes
322
323 nm: bug fixes for handling corrupt input files
324
325 Version 0.137:
326
327 Minor fixes for unreleased 0.136 release.
328
329 Version 0.136:
330
331 libdwfl: bug fixes; new "segment" interfaces;
332          all the libdwfl-based tools now support --core=COREFILE option
333
334 Version 0.135:
335
336 libdwfl: bug fixes
337
338 strip: changed handling of ET_REL files wrt symbol tables and relocs
339
340 Version 0.134:
341
342 elflint: backend improvements for sparc, alpha
343
344 libdwfl, libelf: bug fixes
345
346 Version 0.133:
347
348 readelf, elflint, libebl: SHT_GNU_ATTRIBUTE section handling (readelf -A)
349
350 readelf: core note handling for NT_386_TLS, NT_PPC_SPE, Alpha NT_AUXV
351
352 libdwfl: bug fixes and optimization in relocation handling
353
354 elfcmp: bug fix for non-allocated section handling
355
356 ld: implement newer features of binutils linker.
357
358 Version 0.132:
359
360 libcpu: Implement x86 and x86-64 disassembler.
361 libasm: Add interface for disassembler.
362
363 all programs: add debugging of branch prediction.
364
365 libelf: new function elf_scnshndx.
366
367 Version 0.131:
368
369 libdw: DW_FORM_ref_addr support; dwarf_formref entry point now deprecated;
370        bug fixes for oddly-formatted DWARF
371
372 libdwfl: bug fixes in offline archive support, symbol table handling;
373          apply partial relocations for dwfl_module_address_section on ET_REL
374
375 libebl: powerpc backend support for Altivec registers
376
377 Version 0.130:
378
379 readelf: -p option can take an argument like -x for one section,
380          or no argument (as before) for all SHF_STRINGS sections;
381          new option --archive-index (or -c);
382          improved -n output for core files, on many machines
383
384 libelf: new function elf_getdata_rawchunk, replaces gelf_rawchunk;
385         new functions gelf_getnote, gelf_getauxv, gelf_update_auxv
386
387 readelf, elflint: handle SHT_NOTE sections without requiring phdrs
388
389 elflint: stricter checks on debug sections
390
391 libdwfl: new functions dwfl_build_id_find_elf, dwfl_build_id_find_debuginfo,
392          dwfl_module_build_id, dwfl_module_report_build_id;
393          support dynamic symbol tables found via phdrs;
394          dwfl_standard_find_debuginfo now uses build IDs when available
395
396 unstrip: new option --list (or -n)
397
398 libebl: backend improvements for sparc, alpha, powerpc
399
400 Version 0.129:
401
402 readelf: new options --hex-dump (or -x), --strings (or -p)
403
404 addr2line: new option --symbols (or -S)
405
406 Version 0.128:
407
408 new program: unstrip
409
410 elfcmp: new option --hash-inexact
411
412 Version 0.127:
413
414 libdw: new function dwarf_getsrcdirs
415
416 libdwfl: new functions dwfl_module_addrsym, dwfl_report_begin_add,
417          dwfl_module_address_section
418
419 Version 0.126:
420
421 new program: ar
422
423 Version 0.125:
424
425 elflint: Compare DT_GNU_HASH tests.
426
427 move archives into -static RPMs
428
429 libelf, elflint: better support for core file handling
430
431 Version 0.124:
432
433 libebl: sparc backend support for return value location
434
435 libebl, libdwfl: backend register name support extended with more info
436
437 libelf, libdw: bug fixes for unaligned accesses on machines that care
438
439 readelf, elflint: trivial bugs fixed
440
441 Version 0.123:
442
443 libebl: Backend build fixes, thanks to Stepan Kasal.
444
445 libebl: ia64 backend support for register names, return value location
446
447 libdwfl: Handle truncated linux kernel module section names.
448
449 libdwfl: Look for linux kernel "vmlinux" files with ".debug" suffix.
450
451 elflint: Fix checks to permit --hash-style=gnu format.
452
453 Version 0.122:
454
455 libebl: add function to test for relative relocation
456
457 elflint: fix and extend DT_RELCOUNT/DT_RELACOUNT checks
458
459 elflint, readelf: add support for DT_GNU_HASH
460 libelf: add elf_gnu_hash
461
462 elflint, readelf: add support for 64-bit SysV-style hash tables
463
464 libdwfl: new functions dwfl_module_getsymtab, dwfl_module_getsym.
465
466 Version 0.121:
467
468 libelf: bug fixes for rewriting existing files when using mmap.
469
470 make all installed headers usable in C++ code.
471
472 readelf: better output format.
473
474 elflint: fix tests of dynamic section content.
475
476 ld: Implement --as-needed, --execstack, PT_GNU_STACK.  Many small patches.
477
478 libdw, libdwfl: handle files without aranges info.
479
480 Version 0.120:
481
482 Bug fixes.
483
484 dwarf.h updated for DWARF 3.0 final specification.
485
486 libdwfl: New function dwfl_version.
487
488 The license is now GPL for most files.  The libelf, libebl, libdw,
489 and libdwfl libraries have additional exceptions.  Add reference to
490 OIN.
491
492 Version 0.119:
493
494 bug fixes
495
496 Version 0.118:
497
498 elflint: more tests.
499
500 libdwfl: New function dwfl_module_register_names.
501
502 libebl: New backend hook for register names.
503
504 Version 0.117:
505
506 libdwfl: New function dwfl_module_return_value_location.
507
508 libebl: Backend improvements for several CPUs.
509
510 Version 0.116:
511
512 libdw: New functions dwarf_ranges, dwarf_entrypc, dwarf_diecu,
513        dwarf_entry_breakpoints.  Removed Dwarf_Func type and functions
514        dwarf_func_name, dwarf_func_lowpc, dwarf_func_highpc,
515        dwarf_func_entrypc, dwarf_func_die; dwarf_getfuncs callback now uses
516        Dwarf_Die, and dwarf_func_file, dwarf_func_line, dwarf_func_col
517        replaced by dwarf_decl_file, dwarf_decl_line, dwarf_decl_column;
518        dwarf_func_inline, dwarf_func_inline_instances now take Dwarf_Die.
519        Type Dwarf_Loc renamed to Dwarf_Op; dwarf_getloclist,
520        dwarf_addrloclists renamed dwarf_getlocation, dwarf_getlocation_addr.
521
522 Version 0.115:
523
524 libelf: speed-ups of non-mmap reading.
525
526 strings: New program.
527
528 Implement --enable-gcov option for configure.
529
530 libdw: New function dwarf_getscopes_die.
531
532 Version 0.114:
533
534 libelf: new function elf_getaroff
535
536 libdw: Added dwarf_func_die, dwarf_func_inline, dwarf_func_inline_instances.
537
538 libdwfl: New functions dwfl_report_offline, dwfl_offline_section_address,
539          dwfl_linux_kernel_report_offline.
540
541 ranlib: new program
542
543 Version 0.113:
544
545 elflint: relax a bit. Allow version definitions for defined symbols against
546 DSO versions also for symbols in nobits sections.  Allow .rodata section
547 to have STRINGS and MERGE flag set.
548
549 strip: add some more compatibility with binutils.
550
551 Version 0.112:
552
553 elfcmp: some more relaxation.
554
555 elflint: many more tests, especially regarding to symbol versioning.
556
557 libelf: Add elfXX_offscn and gelf_offscn.
558
559 libasm: asm_begin interface changes.
560
561 libebl: Add three new interfaces to directly access machine, class, and
562 data encoding information.
563
564 objdump: New program.  Just the beginning.
565
566 Version 0.111:
567
568 libdw: now contains all of libdwfl.  The latter is not installed anymore.
569
570 elfcmp: little usability tweak, name and index of differing section is printed.
571
572 Version 0.110:
573
574 libelf: fix a number of problems with elf_update
575
576 elfcmp: fix a few bugs.  Compare gaps.
577
578 Fix a few PLT problems and mudflap build issues.
579
580 libebl: Don't expose Ebl structure definition in libebl.h.  It's now private.
581
582 Version 0.109:
583
584 libebl: Check for matching modules.
585
586 elflint: Check that copy relocations only happen for OBJECT or NOTYPE symbols.
587
588 elfcmp: New program.
589
590 libdwfl: New library.
591
592 Version 0.108:
593
594 strip: fix bug introduced in last change
595
596 libdw: records returned by dwarf_getsrclines are now sorted by address
597
598 Version 0.107:
599
600 readelf: improve DWARF output format
601
602 strip: support Linux kernel modules
603
604 Version 0.106:
605
606 libdw: Updated dwarf.h from DWARF3 spec
607 libdw: add new funtions dwarf_func_entrypc, dwarf_func_file, dwarf_func_line,
608 dwarf_func_col, dwarf_getsrc_file
609
610 Version 0.105:
611
612 addr2line: New program
613
614 libdw: add new functions: dwarf_addrdie, dwarf_macro_*, dwarf_getfuncs,
615 dwarf_func_*.
616
617 findtextrel: use dwarf_addrdie
618
619 Version 0.104:
620
621 findtextrel: New program.
622
623 Version 0.103:
624
625 libdw: Fix using libdw.h with gcc < 4 and C++ code.  Compiler bug.
626
627 Version 0.102:
628
629 More Makefile and spec file cleanups.
630
631 Version 0.101:
632
633 Remove most gettext autoconf handling.
634
635 Add more warnings
636
637 Fix resulting problems.  One actual bug found and fixed this way
638
639 Version 0.100:
640
641 libebl: Fix x86-64 relocations.
642
643 Add -Wunused -Wextra warnings.
644
645 Some cleanups resulting from those additional warnings.
646
647 Lots of Makefile cleanup.
648
649 Version 0.99:
650
651 libelf: add gelf_checksum prototype to <libelf.h>
652
653 libelf: fix elf*_checksum handling of NOBITS sections
654
655 Finish mudflap support.
656
657 Fix three bugs found by mudflap.
658
659 ld: add as_needed support
660
661 Version 0.98:
662
663 readelf: in section to segment mapping, indicate read-only sections.
664
665 elflint: more relaxation for GNU ld
666
667 Version 0.97:
668
669 Fix compiling with gcc 4.0.
670 Some tests called elflint without appropriate LD_LIBRARY_PATH.
671
672 Version 0.96:
673
674 Fix support for platforms with lib64.
675
676 Version 0.95:
677
678 libebl: add ppc and ppc64 support
679
680 readelf: fix minimal memory leak.
681
682 Add support to compile with mudflap.
683
684 Modernize configure.ac.  Move scripts in config subdir.
685
686 Modernize *-po directory infrastructure.
687
688 libelf: Add gelf_getlib and gelf_update_lib
689
690 readelf: print liblist sections
691
692 Version 0.94:
693
694 Fix some minimal build problems.
695
696 Version 0.93:
697
698 ibdw: tons of new functionality and bug fixes.  Several interface changes.
699
700 readelf: use libdw now.
701
702 libdwarf: removed completely.
703
704 Version 0.92:
705
706 configuration changes.
707
708 Version 0.91:
709
710 libdw: fix memory handling.  Implement source line handling.
711 nm: use libdw instead of libdwarf.
712 libelf: change to GPL from OSL1 for now.
713
714 Version 0.90:
715
716 libebl: Recognize a few more section types and dynamic tags and return
717 approriate strings.
718
719 Version 0.89:
720
721 strip: fix overwriting of symbol table in input file.
722
723 Version 0.88:
724
725 libebl: Add some ia64 bits.
726
727 Version 0.87:
728
729 Bug fixes for big endian and some 64-bit machines.
730
731 Version 0.86:
732
733 strip: fix handling of Alpha and s390x which use incorrect hash bucket sizes.
734
735 ld: tons of changes, moving towards usability.
736
737 Version 0.85:
738
739 strip: update section group symbol index if the associated symbol table changed
740
741 libelf: fix two problems with generating output not via mmap
742
743 elflint: add probably 10-15 more tests
744 libebl: add support for some of the new tests
745
746 ld: gazillion changes
747
748 Version 0.84:
749
750 elflint: deal with .rel.dyn section.  Fix a problem with rela platforms.
751 Handle PT_GNU_STACK.  Change to write messages to stdout.
752
753 readelf: fix a problem with version information in the symbol table output.
754
755 strip: update all version symbol table entries
756
757 Version 0.83:
758
759 size: fix a warning
760
761 strip: last changed caused problems when the symbol table is before the
762 relocation section.  Fixed.  This fix also improved the asymptotic
763 behavior if many symbol table sections are present.
764
765 Version 0.82:
766
767 Run strip tests with the correct libelf and libebl.
768
769 libelf: fix bug in verneed byte order changing code.
770
771 Version 0.81:
772
773 strip: Remove unused symbol table entries.  This might require updating
774 various other sections.
775
776 Version 0.80:
777
778 Fix some libelf problems with ET_REL files.
779
780 Version 0.79:
781
782 More warning changes, mainly by jbj.
783
784 libdw: yet more new code.  dwarf_child and dwarf_sibling should now actually
785 work.
786
787 Version 0.78:
788
789 libdw: 10+ new functions.  get-pubnames2 works now fully.  Almost all the
790 code needed for nm is in place.
791
792 Version 0.77:
793
794 cleanups to compile cleanly with gcc 3.3 and -Werror.
795
796 libdw: some new code.
797
798 Version 0.76:
799
800 libebl: Fix last patch to recognize relocation sections.   We must not
801 use the name.
802
803 Version 0.75:
804
805 libebl: .debug_ranges is a DWARF 3 debug section
806 libebl: recognize relocation sections for debug section
807 Patches by Jakub Jelinek.
808
809 Version 0.74:
810
811 Cleanups and more SPARC support by Tom Callaway <tcallaway@redhat.com>.
812
813 Version 0.73:
814
815 64-bit cleanups for the programs.
816
817 Version 0.72:
818
819 libelf: and yet more fun with endian tranformation at output time.
820
821 Version 0.71:
822
823 libelf: more fun with endian tranformation at output time.  Add test for it.
824
825 Version 0.70:
826
827 libelf: Two little bugs left from previous patch to handle section output
828 order.
829
830 libelf: add unlikely in some more places.
831
832 Version 0.69:
833
834 libelf: fix output routines to handle case where section indeces and
835 ordre in the output file don't match correctly.  Patch by Jakub.
836
837 elflint: fix test of note section content for 64-bit platforms and files
838 with different byte order.
839
840 Version 0.68:
841
842 libebl: Fix SH_ENTSIZE_HASH definition (patch by Jakub)
843
844 Version 0.67:
845
846 libelf: correct mistake in error string handling.
847
848 libelf: Implement ELF_F_PERMISSIVE.
849 strip: Implement --permissive option.
850
851 Version 0.66:
852
853 strip: Implement -g option.
854
855 libelf: Handle broken hash table entry sizes.
856
857 libebl: New function ebl_debugscn_p.  Use it where appropriate.
858
859 Version 0.65:
860
861 libelf: Use correct file size for NOBITS section with ELF_F_LAYOUT set
862
863 Version 0.64:
864
865 libelf: Make error handling more robust.
866 libelf: Use TLS in error handler if configured with --enable-tls
867
868 tests: input files are now distributed, not uuencoded in the shell scripts
869
870 libdw: implement error handling, dwarf_get_pubnames
871
872 Version 0.63:
873
874 Build (incomplete) libdw.
875
876 Version 0.62:
877
878 Get rid of libtool.
879
880 Version 0.61:
881
882 Fix URL of OSL.
883
884 Version 0.60:
885
886 libebl: Handle .gnu.warning.* sections correctly.
887
888 size: Implement -t option.
889
890 libebl: Add IA-64 support.
891 libebl: Update SH relocations.
892 libebl: Add Alpha support.
893 libebl: Add Arm support.
894 libebl: Add support for all currently known architecture to the loader.
895
896 Version 0.59:
897
898 nm: Implement -S option.  Correct portable output format.  Implement -s option.
899
900 libelf: Take offset of archive into account in elf_rand.
901
902 Version 0.58:
903
904 strip: fix handling of ET_REL files.
905 Add tests for strip.
906
907 Version 0.57:
908
909 strip: respect layout of input file
910
911 Version 0.56:
912
913 strip: handle files with large number of sections.
914
915 Version 0.55:
916
917 libelf: quite a few bug fixes by Alex Larsson.
918
919 strip: implement -f option to place stripped sections into a separate
920 file.  By Alex Larsson.
921
922 Version 0.54:
923
924 strip: don't let STT_SECTION symbols keeps sections from being removed
925
926 elflint: local symbols are allowed in .dynsym
927 elflint: special case .rel.dyn a bit
928
929 Version 0.53:
930
931 elflint: check types and flags of special sections defined in gABI
932
933 libebl: add x86-64 support
934
935 Version 0.52:
936
937 Start improvement of debug info handling in nm.
938
939 libasm: implement asm_adduleb128 and asm_addsleb128 and a test for them
940
941 Version 0.51:
942
943 Fix build on 64-bit platforms.
944
945 Version 0.50:
946
947 nm: print file/line number also for local symbols
948
949 use versions scripts not libtool's useless -export-symbols option
950
951 Version 0.49:
952
953 Update to autoconf 2.54 and automake 1.7.
954
955 elflint: check note sections
956
957 libdwarf: a number of bug fixes
958
959 readelf: print .debug_info section content
960
961 dwarf.h: Update from draft 7
962
963 Version 0.48:
964
965 libcpu: beginning
966
967 libelf: new function to read parts of the ELF file
968
969 libebl: support for note section handling
970
971 readelf: dump note sections
972
973 Version 0.47:
974
975 libelf: fix little new section-handling related bugs in elf_getshstrndx
976 and elf_nextscn
977
978 elflint: tests for mandatory content of dynamic section
979
980 libasm: better handling of absolute symbols
981
982 Version 0.46:
983
984 libasm: rewrite to store Elf_Scn* instead of indices
985
986 nm: finish many-section support
987
988 nm: use debug in to print file/line info in sysv format
989
990 libdwarf: fix a few bugs in DIE handling
991
992 Version 0.45:
993
994 libelf: major rewrite to keep Elf_Scn references valid until elf_end
995
996 Version 0.44:
997
998 libasm: Add support for bss, ABS, and COM sections.
999
1000 libebl: ebl_section_name takes now two index arguments to distinguish
1001 between special sections and extended sections
1002
1003 Version 0.43:
1004
1005 General: fix a few problem gcc 3.1 had with the code.
1006
1007 libelf: implement {gelf,elf32,elf64}_checksum
1008
1009 libelf: optimze DSO: fewer relocations, fewer PLTs
1010
1011 add msg_tst test
1012
1013 ld: use correct section header string table index; write correct index
1014
1015 add dependencies for *.sym files
1016
1017 Version 0.42:
1018
1019 libelf: add elf_getshnum and elf_getshstrndx
1020
1021 libebl: update section type name function
1022
1023 elflint: tons of fixes wrt large number of sections.  New tests in this area.
1024 Same amount of other bug fixes.
1025
1026 size, strip, nm: better support for large number of sections.  Including
1027 using correct section header string table
1028
1029 libasm: correctly create data structures for large number of sections
1030
1031 new tests asm-tst4 and asm-tst5 to check large number of sections
1032
1033 libasm: implement section group generation
1034
1035 elflint: more tests on section groups.  Improve performance on existing
1036 section group tests
1037
1038 Version 0.41:
1039
1040 ld: add undefined symbols to dynamic symbol table if --export-dynamic is
1041 not given
1042
1043 ld: fix value of e_entry
1044
1045 Version 0.40:
1046
1047 elflint: print section names in error messages
1048
1049 elflint: mustn't warn about multiple DT_NULL
1050
1051 ld: don't emit all symbols if --export-dynamic is not given
1052
1053 ld: correct compute symbol address in output file (section index was off by 1)
1054
1055 ld: generate correct version info in dynsym without --export-dynamic and
1056 in symtab
1057
1058 Version 0.39:
1059
1060 Fix check of various e_*size entries in elflint.
1061
1062 Handle text output in asm_newsym.
1063
1064 Finish checks in asm-tst3.
1065
1066 Version 0.38:
1067
1068 Update to autoconf 2.53, automake 1.6, gettext 0.11+.
1069
1070 Introduce *.sym files to restrict export from DSOs.
1071
1072 Use attribute_hidden and internal_function to optimize DSO code.
1073
1074 Add TLS definitions in elf.h and handle them in readelf.
1075
1076 Fix bug in verdef section generation in ld.
1077
1078 Add initial libasm code.
1079
1080 Version 0.37:
1081
1082 Implement better hash size optimization heuristic in ld.  It uses a formula
1083 taking number of tests into account.
1084
1085 Lots of small bug fixes.
1086
1087 Improve readelf output format.  Respect various sh_link/sh_info values.
1088 Correctly print versioning information for symbol tables.
1089
1090 Version 0.36:
1091
1092 Implement preprocessing of linker script.  Recognize -z combreloc.
1093
1094 Version 0.35:
1095
1096 Implement -z ignore|record for ld.
1097
1098 Implement creating of .gnu.version_r and .gnu.version sections.  The
1099 .gnu.version does not yet contain correct info for defined and versioned
1100 symbols (means .gnu.version_d is not yet implemented).
1101
1102 Implement gelf_update_* functions to create versioning data.
1103
1104 Version 0.34:
1105
1106 Add DT_RUNPATH/DT_RPATH entries to dynamic section.  Create .plt and
1107 .rel.plt sections (completely).  Add support for all four PLT related
1108 dynamic section entries.  Add callback function for PLT creation.
1109
1110 More tests in elflint.  Add support for very strict checking which for
1111 now flags level 2 (deprecated features) usage.
1112
1113 Version 0.33:
1114
1115 Create dynamic symbol table, dynamic string table, and hash table to ld.
1116
1117 Add hash table histogram support to readelf.
1118
1119 Version 0.32:
1120
1121 more work on elflint
1122
1123 ld now creates the dynamic section and references it.  Start adding entries
1124 to dynamic section.
1125
1126 Version 0.31:
1127
1128 Start implementing elflint.
1129
1130 Version 0.30:
1131
1132 Fix handling of NOBITS sections in elf_getdata.
1133
1134 Start implementing generation of executables and DSOs in ld.
1135 Generation of program header mostly done.  Address computation done.
1136 Extension of linker script syntax.
1137
1138 Various cleanups.
1139
1140 Implement section group handling in readelf.
1141
1142 Version 0.29:
1143
1144 Implement section groups.  This involved a lot of code moving.  The
1145 new code is entirely untested since gas/gcc are currently not able to
1146 create section groups.  ld works fine on files without section groups.
1147
1148 Version 0.28:
1149
1150 Fix problem with adding more section in elf_newscn.  The section pointers
1151 for the data buffers wasn't adjusted.
1152
1153 Fix elf_getdata with nonzero second parameter.  Correctly handle creation
1154 of internal data buffer for machines without unaligned access.
1155
1156 Version 0.27:
1157
1158 Start adding support to selectively add sections.  Includes support for
1159 section groups.
1160 Add --gc-sections/--no-gc-sections options.
1161 Add general section merging support.
1162
1163 Fix a bug in section group support in strip.
1164
1165 Fix some potential problems with hash value in dynamic hash implementation.
1166
1167 Version 0.26:
1168
1169 section merging works in ld.
1170
1171 Version 0.25:
1172
1173 Actually create data structures from version map file and use it to hide
1174 symbols in ld.
1175
1176 Implement -s -s for ld.
1177
1178 Version 0.24:
1179
1180 Improve relocation table output in readelf.  Avoid some crashes.
1181 Finish many section handling in readelf.
1182
1183 Finish: finish implementation of ld -r.  At least some simple tests pass.
1184
1185 Version 0.23:
1186
1187 Fix a number of errors in ELF_C_WRITE handling.
1188
1189 Almost finished implementation of ld -r.  The data sections are all copied.
1190 Handling of symbol tables is missing.
1191
1192 Version 0.22:
1193
1194 Handle DSO and archive input files correctly if -r option is given.
1195
1196 Gracefully deal with no phdr in new file in libelf.
1197 Fix various small error handling problems.
1198 Don't mmap file for output unless the command says so.
1199
1200 Add code to create ELF section header table to ld finalize routines.
1201
1202 Version 0.21:
1203
1204 Fix some problems with recursive handling of archives in libelf.
1205
1206 Improve messages printed by nm.
1207
1208 Add symbol binding name handling to libebl.  Fix section name handling in
1209 libebl.
1210
1211 readelf and nm use more libebl functions.
1212
1213 Handle XINDEX correctly in nm and string.
1214
1215 Add first machine ld backend library (i386).
1216 Use it.  Recognize -r and --shared.  Avoid using -lxxx parameters for -r.
1217 Create ELF header in output file.  Change mode of output file according to
1218 output file type.  Reorganize callback initialization in ld.
1219
1220 Version 0.20:
1221
1222 Fix some memory leaks in libelf.
1223
1224 Version 0.19:
1225
1226 Implement reading version script.  Both inside linker scripts and via the
1227 --version-script command line parameter.  Uses the same code.
1228 What remains to be done is to implement a data structure which allows
1229 efficient matching against the version names to decide which pattern
1230 matches.
1231
1232 Beginning of output generation and output writing functions.
1233
1234 Version 0.18:
1235
1236 Finish implementation for DSO input file handling.  Implement rpath, runpath,
1237 and LD_LIBRARY_PATH handling.
1238
1239 Version 0.17:
1240
1241 make handling of e_shnum overflow in libelf standard conforming
1242
1243 ld now actually can handle DSOs in linker scripts.  Handling of DT_RUNPATH,
1244 DT_RPATH, -rpath, -rpath-link still remains to be implemented.
1245
1246 fix handling of -L parameters.  Make actual use of the default_paths element.
1247
1248 make re-definition of symbols in and from DSO compatible with existing linker
1249
1250 Version 0.16:
1251
1252 more work on assigning input sections to output sections.
1253
1254 Add gelf_xlatetof and gelf_xlatetom which were accidently left out.
1255
1256 Fix memory handling of section headers.
1257
1258 Version 0.15:
1259
1260 Add many-section support to ld.  Add various new command line parameters.
1261 Allow pagesize to be specified in linker script or on the command line.
1262 Collect input sections in list for the output section according to the rules
1263 specified in the linker script.
1264
1265 Version 0.14:
1266
1267 Fix some problems in the internal list handling which had the result
1268 that we didn't look for some of the unresolved symbols.
1269
1270 Free some memory if we know we don't need it anymore.
1271
1272 Optimize the list of unresolved symbols.  Throw out symbols which are
1273 meanwhile resolved.
1274
1275 Version 0.13:
1276
1277 Got file reading correct now.  The files are all read while parsing
1278 the parameters.  No creating of data structures to describe the linker
1279 command line.  The symbol table is built up while reading the files.
1280 DSOs are handled now.  -( -) handling is optimized.
1281
1282 Version 0.12:
1283
1284 Linker read linker scripts everywhere.  Handles --whole-archive.  Recognizes
1285 --dynamic and --static.  Collects defined and undefined symbols.  Recognizes
1286 conflicts.
1287
1288 libebl now defines functions to call the callbacks.  Add generic name handling
1289 in these new functions.  Remove the code from readelf and call the new
1290 functions.
1291
1292 Version 0.11:
1293
1294 Start of linker.  Basic argument parsing, finding of input files,
1295 linker script reading.
1296
1297 Version 0.10:
1298
1299 Implement dwarf_get_fde_n(), dwarf_get_abbrev(), dwarf_get_abbrev_tag(),
1300 dwarf_get_abbrev_code(), dwarf_get_abbrev_children_flag(),
1301 dwarf_get_abbrev_entry(), dwarf_get_fde_at_pc(), and tests for it.
1302
1303 Version 0.9:
1304
1305 Implement dwarf_get_fde_list_eh(), dwarf_get_cie_of_fde(),
1306 dwarf_get_fde_range(), dwarf_get_cie_info(), dwarf_get_fde_instr_bytes(),
1307 and tests for them.
1308
1309 Version 0.8:
1310
1311 Make handling of binaries in other byte order work and add tests for it.
1312
1313 Version 0.7:
1314
1315 Implement dwarf_get_aranges(), dwarf_get_arange(), dwarf_get_cu_die_offset(),
1316 dwarf_get_arange_info(), and tests for them.
1317
1318 Version 0.6:
1319
1320 Implement dwarf_get_global(), dwarf_globname(), dwarf_global_die_offset(),
1321 dwarf_global_cu_offset(), dwarf_global_name_offsets(), and tests for them
1322
1323 Version 0.5:
1324
1325 Implemented dwarf_srclines(), dwarf_srcfiles(), dwarf_linebeginstatement(),
1326 dwarf_lineendsequence(), dwarf_lineno(), dwarf_lineaddr(), dwarf_lineoff(),
1327 dwarf_linesrc(), dwarf_lineblock(), dwarf_lineprologueend(),
1328 dwarf_lineepiloguebegin(), and tests for them.
1329
1330 Version 0.4:
1331
1332 Implemented dwarf_loclist().
1333
1334 Version 0.3:
1335
1336 Implemented dwarf_dieoffset(), dwarf_die_CU_offset(), dwarf_diename() and
1337 tests.
1338
1339 Implemented dwarf_attrlist(), dwarf_hasattr(), dwarf_attr(), dwarf_lowpc(),
1340 dwarf_highpc(), dwarf_bytesize(), dwarf_bitsize(), dwarf_bitoffset(),
1341 dwarf_srclang(), dwarf_arrayorder(), dwarf_hasform(), dwarf_whatform(),
1342 dwarf_whatattr(), dwarf_formref(), dwarf_global_formref(), dwarf_formaddr(),
1343 dwarf_formflag(), dwarf_formudata(), dwarf_formsdata(), dwarf_formblock,
1344 dwarf_formstring() and tests for them.
1345
1346 Version 0.2:
1347
1348 Implemented dwarf_offdie()), dwarf_tag(), dwarf_dieoffset(),
1349 dwarf_die_CU_offset(), dwarf_diename() and tests for them.
1350
1351 Version 0.1:
1352
1353 First libdwarf functions work.
1354
1355 Version 0.0:
1356
1357 libelf and parts of libebl are done.