]> sourceware.org Git - dwz.git/log
dwz.git
12 years agoCompile with -D_FILE_OFFSET_BITS=64.
Jakub Jelinek [Wed, 23 May 2012 16:17:43 +0000 (18:17 +0200)]
Compile with -D_FILE_OFFSET_BITS=64.

12 years agoFix size computation for DW_FORM_string DW_AT_comp_dir attribute on PUs.
Jakub Jelinek [Tue, 22 May 2012 14:26:38 +0000 (16:26 +0200)]
Fix size computation for DW_FORM_string DW_AT_comp_dir attribute on PUs.

12 years agoHandle even dups (arguably producer bugs) even within a single CU.
Jakub Jelinek [Thu, 17 May 2012 14:42:24 +0000 (16:42 +0200)]
Handle even dups (arguably producer bugs) even within a single CU.

12 years agoDuring partition_dups_1 second_phase only include non-referenced
Jakub Jelinek [Fri, 11 May 2012 13:13:08 +0000 (15:13 +0200)]
During partition_dups_1 second_phase only include non-referenced
DIEs alongside with referenced ones if they can't reference
DIEs not moved into PUs.

12 years agoAlso compare arr[k]->die_cu now that all dups are processed at once
Jakub Jelinek [Fri, 11 May 2012 13:12:20 +0000 (15:12 +0200)]
Also compare arr[k]->die_cu now that all dups are processed at once
during partition_dups.

12 years agoAlways perform parent check in die_eq_1 for toplevel dies,
Jakub Jelinek [Fri, 11 May 2012 06:50:08 +0000 (08:50 +0200)]
Always perform parent check in die_eq_1 for toplevel dies,
Remove unneeded inside{1,2} testing.

12 years agoBackport rth's
Jakub Jelinek [Thu, 10 May 2012 19:21:35 +0000 (21:21 +0200)]
Backport rth's
2002-04-09  Richard Henderson  <rth@redhat.com>

* hashtab.c (higher_prime_number): Use 7 as minimum.
(find_empty_slot_for_expand): Don't compute hash2 unless needed.
(htab_find_slot_with_hash): Likewise.
change.

12 years agoFix test whether attributes extend beyond end of CU.
Jakub Jelinek [Thu, 10 May 2012 14:34:36 +0000 (16:34 +0200)]
Fix test whether attributes extend beyond end of CU.

12 years agoDuring partition_dups process all dups at once, looking for references
Jakub Jelinek [Thu, 10 May 2012 12:36:46 +0000 (14:36 +0200)]
During partition_dups process all dups at once, looking for references
from everywhere.

12 years agoUse ELF_C_WRITE instead of ELF_C_WRITE_MMAP for elf_begin, it is
Jakub Jelinek [Thu, 3 May 2012 19:06:40 +0000 (21:06 +0200)]
Use ELF_C_WRITE instead of ELF_C_WRITE_MMAP for elf_begin, it is
faster and doesn't leak mmapped region.

12 years agoFix up handling of DW_FORM_ref_addr in write_die.
Jakub Jelinek [Thu, 3 May 2012 14:48:12 +0000 (16:48 +0200)]
Fix up handling of DW_FORM_ref_addr in write_die.

12 years agoDuring partition_dups, force together with anything that is worthwhile
Jakub Jelinek [Thu, 3 May 2012 12:09:57 +0000 (14:09 +0200)]
During partition_dups, force together with anything that is worthwhile
to put into PUs also any DIEs that are referenced by those (even indirectly),
and any DIEs that are dups and referenced by the same set of CUs.
This way PUs should no longer DW_FORM_ref_addr to CU DIEs, unless they
were using DW_FORM_ref_addr already before.

12 years agoSmall bugfixes and code cleanups.
Jakub Jelinek [Mon, 30 Apr 2012 06:31:48 +0000 (08:31 +0200)]
Small bugfixes and code cleanups.

12 years agoHandle DW_AT_start_scope with DW_FORM_sec_offset like DW_AT_ranges
Jakub Jelinek [Thu, 26 Apr 2012 12:14:28 +0000 (14:14 +0200)]
Handle DW_AT_start_scope with DW_FORM_sec_offset like DW_AT_ranges
- avoid dup checking for DIEs containing it.

12 years agoAdjust .debug_aranges section if present.
Jakub Jelinek [Thu, 26 Apr 2012 10:30:02 +0000 (12:30 +0200)]
Adjust .debug_aranges section if present.

12 years agoPut new_data and new_size info about debug sections directly into
Jakub Jelinek [Thu, 26 Apr 2012 09:20:15 +0000 (11:20 +0200)]
Put new_data and new_size info about debug sections directly into
debug_sections array, to simplify write_dso and not passing around
too many pointers and sizes.

12 years agoOptimize DW_AT_high_pc DW_FORM_addr for DWARF4+ into constant
Jakub Jelinek [Wed, 25 Apr 2012 16:53:44 +0000 (18:53 +0200)]
Optimize DW_AT_high_pc DW_FORM_addr for DWARF4+ into constant
class form DW_AT_high_pc (which is the size of the entity rather than
address of the first byte after it).

12 years ago.gdb_index support, for versions 4-6 try to update it, otherwise
Jakub Jelinek [Tue, 24 Apr 2012 09:20:47 +0000 (11:20 +0200)]
.gdb_index support, for versions 4-6 try to update it, otherwise
remove it.

12 years agoIMPORTANT: usage change, no works similarly to strip.
Jakub Jelinek [Fri, 20 Apr 2012 16:47:46 +0000 (18:47 +0200)]
IMPORTANT: usage change, no works similarly to strip.
dwz file
will modify file in place (well, write to temporary, rename over),
dwz -o outfile file
will do what dwz file outfile did before.
dwz file1 file2 file3
will modify all the files in place,
dwz
will modify a.out in place,
dwz -o b.out
will modify a.out into b.out.

In addition to that this change revamps the OOM handling to just
not handle the single currently handled file, complain,
cleanup all memory and continue with the next file.

12 years agoSecond part of memory management cleanups. For permanently
Jakub Jelinek [Fri, 20 Apr 2012 07:06:59 +0000 (09:06 +0200)]
Second part of memory management cleanups.  For permanently
(well, for the duration of handling a single file) allocated objects
use a big pool allocator that doesn't unnecessarily align everything
to 16 bytes and allocates in ~ 16MB chunks rather than 4KB.
This decreases memory usage a little bit on large testcases and
speeds things a tiny bit up.
Also, avoid obstacks local to function, for memory allocation failures
if in the future we use longjmp those might not be freed.

12 years agoDon't htab_delete cu->cu_new_abbrev if it is already NULL
Jakub Jelinek [Fri, 20 Apr 2012 07:04:56 +0000 (09:04 +0200)]
Don't htab_delete cu->cu_new_abbrev if it is already NULL
(happens for some .debug_types CUs).

12 years agoFirst pass at memory management cleanup. Ensure (so far only for success)
Jakub Jelinek [Fri, 20 Apr 2012 05:49:36 +0000 (07:49 +0200)]
First pass at memory management cleanup.  Ensure (so far only for success)
that all memory is freed before exit.

12 years agoUndo optimistic die_dup/die_nextdup linking on failures in reverse
Jakub Jelinek [Thu, 19 Apr 2012 15:29:44 +0000 (17:29 +0200)]
Undo optimistic die_dup/die_nextdup linking on failures in reverse
order of their addition.

12 years agoIgnore .debug_gdb_scripts sections.
Jakub Jelinek [Thu, 19 Apr 2012 11:45:08 +0000 (13:45 +0200)]
Ignore .debug_gdb_scripts sections.

12 years agoUse just u.p1.die_ref_hash instead of u.p1.die_hash ^ u.p1.die_ref_hash
Jakub Jelinek [Thu, 19 Apr 2012 11:43:17 +0000 (13:43 +0200)]
Use just u.p1.die_ref_hash instead of u.p1.die_hash ^ u.p1.die_ref_hash
as hash in the dup_htab hash table.  die_ref_hash has die_hash iteratively
hashed in already, and on leaf DIEs is equal to die_hash, so the xor
resulted in 0 for all leaf DIEs.

12 years agoImprove ref_hash computation in cycles - add the forgotten
Jakub Jelinek [Thu, 19 Apr 2012 11:41:37 +0000 (13:41 +0200)]
Improve ref_hash computation in cycles - add the forgotten
addition of *second_idx, so it doesn't hash in always 0.

12 years agoOptimize .debug_abbrev handling for .debug_types section. If
Jakub Jelinek [Thu, 19 Apr 2012 11:39:48 +0000 (13:39 +0200)]
Optimize .debug_abbrev handling for .debug_types section.  If
adjacent .debug_types CUs have the same .debug_abbrev offsets, just
read it once and point the others to the abbrev table owner's CU.

12 years agoFix a thinko that causes
Jakub Jelinek [Thu, 19 Apr 2012 11:37:11 +0000 (13:37 +0200)]
Fix a thinko that causes
create_import_tree: Assertion `ipu2->idx >= npus + ncus' failed.
on some objects.

12 years agoRevamp die_dup/die_nextdup for easier debugging. Instead of
Jakub Jelinek [Thu, 19 Apr 2012 11:35:19 +0000 (13:35 +0200)]
Revamp die_dup/die_nextdup for easier debugging.  Instead of
two separate structures where second one contains the first at the
beginning just put the die_dup/die_nextdup fields last in the
single structure and for !die_toplevel DIEs just allocate using
offsetof (struct dw_die, die_dup) size (so those two fields will be
garbage).

12 years agodwz-0.1 - first public release dwz-0.1
Jakub Jelinek [Thu, 19 Apr 2012 11:32:50 +0000 (13:32 +0200)]
dwz-0.1 - first public release

This page took 0.03512 seconds and 5 git commands to generate.