Compare commits

...

No commits in common. 'c9' and 'c8' have entirely different histories.
c9 ... c8

@ -1 +1 @@
2352468822ea8a66114c1ee9e1c8375360da6d91 SOURCES/dwz-0.14.tar.xz
35642abd55abc717571d315a87758bfd419bd21a SOURCES/dwz-0.12.tar.bz2

2
.gitignore vendored

@ -1 +1 @@
SOURCES/dwz-0.14.tar.xz
SOURCES/dwz-0.12.tar.bz2

@ -0,0 +1,44 @@
X-Git-Url: https://sourceware.org/git/?p=dwz.git;a=blobdiff_plain;f=dwz.c;h=9e39824d0f1fec950c811357c62e6a0caa1880d7;hp=6f34a0c7f84d00aa74750ea7d60c882967d252c0;hb=4a89e2c78e57b1b05ff71a8e32b2219e02d30425;hpb=815ac613209fa8cbcdda57302a0a1ab0366923ad
diff --git a/dwz.c b/dwz.c
index 6f34a0c..9e39824 100644
--- a/dwz.c
+++ b/dwz.c
@@ -2357,10 +2357,33 @@ checksum_die (DSO *dso, dw_cu_ref cu, dw_die_ref top_die, dw_die_ref die)
}
if (unlikely (op_multifile) && ref->die_collapsed_child)
ref = ref->die_parent;
- assert (((!op_multifile && !rd_multifile && !fi_multifile)
- || cu != die_cu (ref))
- && (!op_multifile
- || cu->cu_chunk == die_cu (ref)->cu_chunk));
+ if (cu == die_cu (ref))
+ {
+ /* The reference was encoded using a section-relative
+ encoding, while if it could have been encoded using
+ CU-relative encoding. Typically, the latter is used,
+ because:
+ - it's potentially smaller, and
+ - it doesn't require a link-time relocation. */
+
+ /* Assert that the multifile only contains section-relative
+ encoding when necessary. */
+ assert (!op_multifile && !rd_multifile);
+
+ if (fi_multifile)
+ {
+ /* It's possible that the input DWARF contains this
+ sub-optimal reference. We currently don't optimize
+ this during single-file optimization, so it will still
+ be there during finalize_multifile. Bail out to handle
+ this conservatively. */
+ die->die_ck_state = CK_BAD;
+ return 0;
+ }
+ }
+ /* Assert that during op_multifile, die belongs to the same object
+ as ref. */
+ assert (!op_multifile || cu->cu_chunk == die_cu (ref)->cu_chunk);
handled = true;
break;
}

@ -1,11 +1,16 @@
Summary: DWARF optimization and duplicate removal tool
Name: dwz
Version: 0.14
Release: 3%{?dist}
Version: 0.12
Release: 10%{?dist}
License: GPLv2+ and GPLv3+
Source: %{name}-0.14.tar.xz
BuildRequires: gcc, gcc-c++, gdb, elfutils-libelf-devel, dejagnu
BuildRequires: make
Group: Development/Tools
# git archive --format=tar --remote=git://sourceware.org/git/dwz.git \
# --prefix=%%{name}-%%{version}/ %%{name}-%%{version} \
# | bzip2 -9 > %%{name}-%%{version}.tar.bz2
Source: %{name}-%{version}.tar.bz2
BuildRequires: gcc, elfutils-libelf-devel
Patch1: dwz-rh1949185.patch
%description
The dwz package contains a program that attempts to optimize DWARF
@ -17,18 +22,17 @@ DW_TAG_partial_unit compilation units (CUs) for duplicated information
and using DW_TAG_imported_unit to import it into each CU that needs it.
%prep
%setup -q -n dwz
%setup -q
%patch1 -p1 -b .rh1949185~
%build
%make_build CFLAGS='%{optflags}' LDFLAGS='%{build_ldflags}' \
make %{?_smp_mflags} CFLAGS='%{optflags}' LDFLAGS='%{build_ldflags}' \
prefix=%{_prefix} mandir=%{_mandir} bindir=%{_bindir}
%install
rm -rf %{buildroot}
%make_install prefix=%{_prefix} mandir=%{_mandir} bindir=%{_bindir}
%check
make check
make DESTDIR=%{buildroot} prefix=%{_prefix} mandir=%{_mandir} bindir=%{_bindir} \
install
%files
%license COPYING COPYING3 COPYING.RUNTIME
@ -36,54 +40,12 @@ make check
%{_mandir}/man1/dwz.1*
%changelog
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 0.14-3
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 0.14-2
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue Mar 09 2021 Jakub Jelinek <jakub@redhat.com> 0.14-1
- update to a new upstream release
* Fri Jan 22 2021 Mark Wielaard <mjw@fedoraproject.org> 0.13-7
- Don't crash on DWARF5 .debug_line table with zero files (#1919243)
* Thu Jan 21 2021 Jakub Jelinek <jakub@redhat.com> 0.13-6
- DW_FORM_implicit_const handling fixes (sw#27212, sw#27213)
- temporarily build odr tests with -gdwarf-4 as they are incompatible with
DWARF 5
* Mon Jan 18 2021 Jakub Jelinek <jakub@redhat.com> 0.13-5
- update to latest git snapshot
- DWARF5 support
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.13-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jul 13 2020 Tom Stellard <tstellar@redhat.com> - 0.13-3
- Use make macros
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.13-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Dec 11 2019 Jakub Jelinek <jakub@redhat.com> 0.13-1
- update to a new upstream release
- add make check
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.12-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.12-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Thu Jul 19 2018 Marek Polacek <polacek@redhat.com> 0.12-9
- remove %{?_isa} from BuildRequires (#1545173)
- add gcc to BuildRequires
* Wed May 5 2021 Marek Polacek <polacek@redhat.com> 0.12-10
- handle intra-CU DW_FORM_ref_addr reference (#1949185)
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.12-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Aug 7 2018 Marek Polacek <polacek@redhat.com> 0.12-9
- don't use arched BuildRequires (#1545773)
- remove %defattr
* Fri Feb 23 2018 Florian Weimer <fweimer@redhat.com> - 0.12-7
- Use LDFLAGS from redhat-rpm-config

Loading…
Cancel
Save