Compare commits

...

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

@ -1,3 +1,3 @@
42dfbb3d9cd25427e0554fdb619e69479816d089 SOURCES/debugedit-5.1.tar.xz e15e23409266e2a0be8b3748235b126bedbc7b6b SOURCES/debugedit-5.0.tar.xz
346279745035e5e2373ad1e88e3d3a948a4e17dc SOURCES/debugedit-5.1.tar.xz.sig 1c91547813dddd09e345df31d8ecfbd0b1aaa9e9 SOURCES/debugedit-5.0.tar.xz.sig
4c6ca620f5b14e24492616195f7848df0029451c SOURCES/gpgkey-5C1D1AA44BE649DE760A.gpg 4c6ca620f5b14e24492616195f7848df0029451c SOURCES/gpgkey-5C1D1AA44BE649DE760A.gpg

4
.gitignore vendored

@ -1,3 +1,3 @@
SOURCES/debugedit-5.1.tar.xz SOURCES/debugedit-5.0.tar.xz
SOURCES/debugedit-5.1.tar.xz.sig SOURCES/debugedit-5.0.tar.xz.sig
SOURCES/gpgkey-5C1D1AA44BE649DE760A.gpg SOURCES/gpgkey-5C1D1AA44BE649DE760A.gpg

@ -1,100 +0,0 @@
From 67dee55d160e312b9d0db607630eacfaa3ce08e4 Mon Sep 17 00:00:00 2001
From: Mark Wielaard <mark@klomp.org>
Date: Thu, 28 Nov 2024 17:58:54 +0100
Subject: [PATCH] find-debuginfo: Check files are writable before modifying
them
Since commit dfe1f7ff3 ("find-debuginfo.sh: Exit with real exit status
in parallel jobs") there is a check whether gdb-add-index worked
correctly and find-debuginfo would fail (even in parallel mode) if an
error occured.
This turned out to show that gdb-add-index needs write permission to
add the gdb index to the file. This is also the case for a couple of
other things, like running objcopy --merge-notes. debugedit and
add_minidebug already made sure it had write permission.
To make sure find-debuginfo doesn't (partially) fail extend the
writable check to include the gdb-add-index and objcopy --merge-notes
invocation.
---
scripts/find-debuginfo.in | 33 +++++++++++++++++++++++++++++++--
1 file changed, 31 insertions(+), 2 deletions(-)
diff --git a/scripts/find-debuginfo.in b/scripts/find-debuginfo.in
index a360bf0582dc..4e4ef5a64005 100755
--- a/scripts/find-debuginfo.in
+++ b/scripts/find-debuginfo.in
@@ -481,14 +481,29 @@ do_file()
$strict && return 2
fi
+ # debugedit makes sure to to get write permission to the file and
+ # restores original state after modifications. Other utilities
+ # might not.
+ f_writable="false"
+ if test -w "$f"; then f_writable="true"; fi
+
# Add .gdb_index if requested.
if $include_gdb_index; then
if type gdb-add-index >/dev/null 2>&1; then
+ if test "$f_writable" = "false"; then
+ chmod u+w "$f"
+ fi
gdb-add-index "$f" || {
status=$?
echo >&2 "*** ERROR:: GDB exited with exit status $status during index generation"
+ if test "$f_writable" = "false"; then
+ chmod u-w "$f"
+ fi
return 2
}
+ if test "$f_writable" = "false"; then
+ chmod u-w "$f"
+ fi
else
echo >&2 "*** ERROR: GDB index requested, but no gdb-add-index installed"
return 2
@@ -497,7 +512,13 @@ do_file()
# Compress any annobin notes in the original binary.
# Ignore any errors, since older objcopy don't support --merge-notes.
+ if test "$f_writable" = "false"; then
+ chmod u+w "$f"
+ fi
objcopy --merge-notes "$f" 2>/dev/null || true
+ if test "$f_writable" = "false"; then
+ chmod u-w "$f"
+ fi
# A binary already copied into /usr/lib/debug doesn't get stripped,
# just has its file names collected and adjusted.
@@ -507,7 +528,7 @@ do_file()
esac
mkdir -p "${debugdn}"
- if test -w "$f"; then
+ if test "$f_writable" = "true"; then
strip_to_debug "${debugfn}" "$f"
else
chmod u+w "$f"
@@ -529,7 +550,15 @@ do_file()
application/x-executable*) skip_mini=false ;;
application/x-pie-executable*) skip_mini=false ;;
esac
- $skip_mini || add_minidebug "${debugfn}" "$f"
+ if test "$skip_mini" = "true"; then
+ if test "$f_writable" = "false"; then
+ chmod u+w "$f"
+ fi
+ add_minidebug "${debugfn}" "$f"
+ if test "$f_writable" = "false"; then
+ chmod u-w "$f"
+ fi
+ fi
fi
echo "./${f#$RPM_BUILD_ROOT}" >> "$ELFBINSFILE"
--
2.47.0

@ -0,0 +1,130 @@
From ae27211cbbfb63a0ad3c141cd1310d7f583ec40e Mon Sep 17 00:00:00 2001
From: Mark Wielaard <mark@klomp.org>
Date: Fri, 30 Jul 2021 18:09:46 +0200
Subject: [PATCH] tests: Handle zero directory entry in .debug_line DWARF5
debugedit.at
We were skipping the zero directory entry, because it was always
the same as the directory entry at position one. But that isn't
true anymore with gcc 11.2.1. There the zero dir entry is unique.
Fix the debugedit.at .debug_line testcases using DWARF5 to also
include dir entry zero.
Signed-off-by: Mark Wielaard <mark@klomp.org>
---
configure.ac | 14 ++++++++++++++
tests/atlocal.in | 1 +
tests/debugedit.at | 18 ++++++++++++------
3 files changed, 27 insertions(+), 6 deletions(-)
diff --git a/configure.ac b/configure.ac
index e5c9230..6a53365 100644
--- a/configure.ac
+++ b/configure.ac
@@ -87,6 +87,20 @@ CFLAGS="$save_CFLAGS"
GDWARF_5_FLAG=$ac_cv_gdwarf_5
AC_SUBST([GDWARF_5_FLAG])
+AC_CACHE_CHECK([whether -gdwarf-5 produced DWARF5 .debug_line], ac_cv_dwarf_5_debugline, [dnl
+save_CFLAGS="$CFLAGS"
+CFLAGS="-gdwarf-5"
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int i=0;]],[[/* empty main */]])],
+ [if readelf --debug-dump=line conftest.o 2>&1 | \
+ grep "DWARF Version:" 2>&1 | grep "5" > /dev/null 2>&1; \
+ then ac_cv_dwarf_5_debugline=yes; \
+ else ac_cv_dwarf_5_debugline=no; fi],
+ ac_cv_dwarf_5_debugline=no)
+CFLAGS="$save_CFLAGS"
+])
+DWARF_5_DEBUGLINE=$ac_cv_dwarf_5_debugline
+AC_SUBST([DWARF_5_DEBUGLINE])
+
AC_CACHE_CHECK([whether gcc supports -gz=none], ac_cv_gz_none, [dnl
save_CFLAGS="$CFLAGS"
CFLAGS="-gz=none"
diff --git a/tests/atlocal.in b/tests/atlocal.in
index 8399f8d..d916301 100644
--- a/tests/atlocal.in
+++ b/tests/atlocal.in
@@ -13,3 +13,4 @@ READELF="@READELF@"
GDWARF_5_FLAG=@GDWARF_5_FLAG@
GZ_NONE_FLAG=@GZ_NONE_FLAG@
+DWARF_5_DEBUGLINE=@DWARF_5_DEBUGLINE@
diff --git a/tests/debugedit.at b/tests/debugedit.at
index 0311d26..725e68e 100644
--- a/tests/debugedit.at
+++ b/tests/debugedit.at
@@ -488,10 +488,12 @@ AT_CLEANUP
AT_SETUP([debugedit .debug_line objects DWARF5])
AT_KEYWORDS([debuginfo] [debugedit])
AT_SKIP_IF([test "$GDWARF_5_FLAG" = "no"])
+AT_SKIP_IF([test "$DWARF_5_DEBUGLINE" = "no"])
DEBUGEDIT_SETUP([-gdwarf-5])
AT_DATA([expout],
[foo/bar/baz
+foo/bar/baz/subdir_bar
foo/bar/baz/subdir_headers
])
@@ -500,8 +502,8 @@ AT_CHECK([[debugedit -b $(pwd) -d /foo/bar/baz ./subdir_bar/bar.o]])
AT_CHECK([[debugedit -b $(pwd) -d /foo/bar/baz ./baz.o]])
AT_CHECK([[
readelf --debug-dump=line foo.o subdir_bar/bar.o baz.o \
- | grep -A5 "The Directory Table" | grep "^ [123]" \
- | cut -f2- -d/ | grep ^foo/ | sort
+ | grep -A5 "The Directory Table" | grep "^ [0123]" \
+ | cut -f2- -d/ | grep ^foo/ | sort -u
]],[0],[expout])
AT_CLEANUP
@@ -535,18 +537,20 @@ AT_CLEANUP
AT_SETUP([debugedit .debug_line partial DWARF5])
AT_KEYWORDS([debuginfo] [debugedit])
AT_SKIP_IF([test "$GDWARF_5_FLAG" = "no"])
+AT_SKIP_IF([test "$DWARF_5_DEBUGLINE" = "no"])
DEBUGEDIT_SETUP([-gdwarf-5])
AT_DATA([expout],
[foo/bar/baz
+foo/bar/baz/subdir_bar
foo/bar/baz/subdir_headers
])
AT_CHECK([[debugedit -b $(pwd) -d /foo/bar/baz ./foobarbaz.part.o]])
AT_CHECK([[
readelf --debug-dump=line ./foobarbaz.part.o \
- | grep -A5 "The Directory Table" | grep "^ [123]" \
- | cut -f2- -d/ | grep ^foo/ | sort
+ | grep -A5 "The Directory Table" | grep "^ [0123]" \
+ | cut -f2- -d/ | grep ^foo/ | sort -u
]],[0],[expout])
AT_CLEANUP
@@ -580,18 +584,20 @@ AT_CLEANUP
AT_SETUP([debugedit .debug_line exe DWARF5])
AT_KEYWORDS([debuginfo] [debugedit])
AT_SKIP_IF([test "$GDWARF_5_FLAG" = "no"])
+AT_SKIP_IF([test "$DWARF_5_DEBUGLINE" = "no"])
DEBUGEDIT_SETUP([-gdwarf-5])
AT_DATA([expout],
[foo/bar/baz
+foo/bar/baz/subdir_bar
foo/bar/baz/subdir_headers
])
AT_CHECK([[debugedit -b $(pwd) -d /foo/bar/baz ./foobarbaz.exe]])
AT_CHECK([[
readelf --debug-dump=line ./foobarbaz.exe \
- | grep -A5 "The Directory Table" | grep "^ [123]" \
- | cut -f2- -d/ | grep ^foo/ | sort
+ | grep -A5 "The Directory Table" | grep "^ [0123]" \
+ | cut -f2- -d/ | grep ^foo/ | sort -u
]],[0],[expout])
AT_CLEANUP
--
2.27.0

@ -0,0 +1,116 @@
From b8ac71d9f88202f00a32c5a8b3b4b93bb2fa110a Mon Sep 17 00:00:00 2001
From: Prarit Bhargava <prarit@redhat.com>
Date: Thu, 26 Jan 2023 16:08:57 -0500
Subject: [PATCH] scripts/find-debuginfo.in: Add -q|--quiet
Projects with a large number of compiled files end up with a large number
of 'extracting debug info from' messages in the build log. In the case of
the Fedora kernel these messages account for 8504 lines in the log, or 61%
of the entire log [1].
Removing these lines make the log easier to view and comprehend for some
projects, however, not all projects will want to silence these messages so
suppressing them must be optional.
Add a -q|--quiet which allows users to silence the non-error output from
the script.
[1] https://kojipkgs.fedoraproject.org//packages/kernel/6.2.0/0.rc5.20230123git2475bf0250de.38.fc38/data/logs/x86_64/build.log
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
---
scripts/find-debuginfo.in | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)
diff --git a/scripts/find-debuginfo.in b/scripts/find-debuginfo.in
index 8090c84..7dec3c3 100755
--- a/scripts/find-debuginfo.in
+++ b/scripts/find-debuginfo.in
@@ -26,7 +26,7 @@ Usage: find-debuginfo [OPTION]... [builddir]
automagically generates debug info and file lists
Options:
-[--strict-build-id] [-g] [-r] [-m] [-i] [-n]
+[--strict-build-id] [-g] [-r] [-m] [-i] [-n] [-q]
[--keep-section SECTION] [--remove-section SECTION]
[--g-libs]
[-j N] [--jobs N]
@@ -94,6 +94,8 @@ will be called /usr/debug/src/<BASE>. This makes sure the debug source
dirs are unique between package version, release and achitecture (Use
--unique-debug-src-base "%{name}-%{VERSION}-%{RELEASE}.%{_arch}")
+The -q or --quiet flag silences non-error output from the script.
+
All file names in switches are relative to builddir ('.' if not given).
EOF
}
@@ -146,6 +148,9 @@ n_jobs=1
# exit early on --version or --help
done=false
+# silence non-error output
+quiet=false
+
BUILDDIR=.
out=debugfiles.list
srcout=
@@ -239,6 +244,9 @@ while [ $# -gt 0 ]; do
srcout=$2
shift
;;
+ -q|--quiet)
+ quiet=true
+ ;;
--version)
echo "find-debuginfo @VERSION@"
done=true;
@@ -437,7 +445,7 @@ do_file()
get_debugfn "$f"
[ -f "${debugfn}" ] && return
- echo "extracting debug info from $f"
+ $quiet || echo "extracting debug info from $f"
# See also cpio SOURCEFILE copy. Directories must match up.
debug_base_name="$RPM_BUILD_DIR"
debug_dest_name="/usr/src/debug"
@@ -513,7 +521,7 @@ do_file()
grep "^$inum " "$temp/linked" | while read inum linked; do
link=$debugfn
get_debugfn "$linked"
- echo "hard linked $link to $debugfn"
+ $quiet || echo "hard linked $link to $debugfn"
mkdir -p "$(dirname "$debugfn")" && ln -nf "$link" "$debugfn"
done
fi
@@ -576,7 +584,7 @@ if $run_dwz \
&& [ -d "${RPM_BUILD_ROOT}/usr/lib/debug" ]; then
readarray dwz_files < <(cd "${RPM_BUILD_ROOT}/usr/lib/debug"; find -type f -name \*.debug | LC_ALL=C sort)
if [ ${#dwz_files[@]} -gt 0 ]; then
- size_before=$(du -sk ${RPM_BUILD_ROOT}/usr/lib/debug | cut -f1)
+ $quiet || size_before=$(du -sk ${RPM_BUILD_ROOT}/usr/lib/debug | cut -f1)
dwz_multifile_name="${RPM_PACKAGE_NAME}-${RPM_PACKAGE_VERSION}-${RPM_PACKAGE_RELEASE}.${RPM_ARCH}"
dwz_multifile_suffix=
dwz_multifile_idx=0
@@ -600,8 +608,8 @@ if $run_dwz \
echo >&2 "*** ERROR: DWARF compression requested, but no dwz installed"
exit 2
fi
- size_after=$(du -sk ${RPM_BUILD_ROOT}/usr/lib/debug | cut -f1)
- echo "original debug info size: ${size_before}kB, size after compression: ${size_after}kB"
+ $quiet || size_after=$(du -sk ${RPM_BUILD_ROOT}/usr/lib/debug | cut -f1)
+ $quiet || echo "original debug info size: ${size_before}kB, size after compression: ${size_after}kB"
# Remove .dwz directory if empty
rmdir "${RPM_BUILD_ROOT}/usr/lib/debug/.dwz" 2>/dev/null
@@ -621,7 +629,7 @@ do
f=${f#$RPM_BUILD_ROOT}
t=${t#$RPM_BUILD_ROOT}
if [ -f "$debugdir$t" ]; then
- echo "symlinked /usr/lib/debug$t to /usr/lib/debug${f}.debug"
+ $quiet || echo "symlinked /usr/lib/debug$t to /usr/lib/debug${f}.debug"
debug_link "/usr/lib/debug$t" "${f}.debug"
fi
done
--
2.39.1

@ -1,8 +1,8 @@
Name: debugedit Name: debugedit
Version: 5.1 Version: 5.0
Release: 2%{?dist} Release: 4%{?dist}
Summary: Tools and scripts for creating debuginfo and source file distributions, collect build-ids and rewrite source paths in DWARF data for debugging, tracing and profiling. Summary: Tools for debuginfo creation
License: GPL-3.0-or-later AND GPL-2.0-or-later AND LGPL-2.0-or-later License: GPLv3+ and GPLv2+ and LGPLv2+
URL: https://sourceware.org/debugedit/ URL: https://sourceware.org/debugedit/
Source0: https://sourceware.org/pub/debugedit/%{version}/%{name}-%{version}.tar.xz Source0: https://sourceware.org/pub/debugedit/%{version}/%{name}-%{version}.tar.xz
Source1: https://sourceware.org/pub/debugedit/%{version}/%{name}-%{version}.tar.xz.sig Source1: https://sourceware.org/pub/debugedit/%{version}/%{name}-%{version}.tar.xz.sig
@ -14,12 +14,6 @@ BuildRequires: pkgconfig(libdw)
BuildRequires: help2man BuildRequires: help2man
BuildRequires: gnupg2 BuildRequires: gnupg2
# For configure checking -j support
BuildRequires: dwz
# For debugedit build-id recomputation
BuildRequires: xxhash-devel
# For the testsuite. # For the testsuite.
BuildRequires: autoconf BuildRequires: autoconf
BuildRequires: automake BuildRequires: automake
@ -44,7 +38,8 @@ Requires: grep
%global _hardened_build 1 %global _hardened_build 1
Patch1: 0001-find-debuginfo-Check-files-are-writable-before-modif.patch Patch1: 0001-tests-Handle-zero-directory-entry-in-.debug_line-DWA.patch
Patch2: 0002-scripts-find-debuginfo.in-Add-q-quiet.patch
%description %description
The debugedit project provides programs and scripts for creating The debugedit project provides programs and scripts for creating
@ -72,6 +67,8 @@ ln -s find-debuginfo find-debuginfo.sh
%check %check
# The testsuite should be zero fail. # The testsuite should be zero fail.
# It uses its own CFLAGS and LDFLAGS settings.
sed -i 's/^\(C\|LD\)FLAGS=.*/\1FLAGS=""/' tests/atlocal
make check %{?_smp_mflags} make check %{?_smp_mflags}
%files %files
@ -86,73 +83,19 @@ make check %{?_smp_mflags}
%{_mandir}/man1/find-debuginfo.1* %{_mandir}/man1/find-debuginfo.1*
%changelog %changelog
* Thu Nov 28 2024 Mark Wielaard <mjw@redhat.com> - 5.1-2 * Tue Mar 28 2023 Mark Wielaard <mjw@redhat.com> - 5.0-4
- Add 0001-find-debuginfo-Check-files-are-writable-before-modif.patch - Add 0002-scripts-find-debuginfo.in-Add-q-quiet.patch
* Tue Oct 29 2024 Mark Wielaard <mjw@redhat.com> - 5.1-1
- New upstream 5.1 release
- Drop all local patches
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 5.0-16
- Bump release for October 2024 mass rebuild:
Resolves: RHEL-64018
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 5.0-15
- Bump release for June 2024 mass rebuild
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.0-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.0-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Mon Dec 4 2023 Mark Wirlaard <mjw@fedoraproject.org> - 5.0-12
- Add 0001-debugedit-Add-support-for-.debug_str_offsets-DW_FORM.patch
* Fri Nov 17 2023 Mark Wirlaard <mjw@fedoraproject.org> - 5.0-11
- migrated to SPDX license
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5.0-10 * Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 5.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Fri Jun 30 2023 Mark Wielaard <mjw@fedoraproject.org> - 5.0-9 * Tue Aug 3 2021 Mark Wielaard <mjw@redhat.com> - 5.0-2
- Add 0001-find-debuginfo-Add-v-verbose-for-per-file-messages.patch
* Fri Jun 30 2023 Mark Wielaard <mjw@fedoraproject.org> - 5.0-8
- Add 0001-find-debuginfo-Prefix-install_dir-to-PATH.patch
* Fri Jan 27 2023 Mark Wielaard <mjw@fedoraproject.org> - 5.0-7
- Refresh 0001-tests-Handle-zero-directory-entry-in-.debug_line-DWA.patch
- Add new upstream patches:
0001-use-READELF-not-readelf.patch
0001-find-debuginfo-Pass-j-down-to-dwz.patch
0002-configure.ac-Use-AC_LINK_IFELSE-for-gz-none-check.patch
0003-configure.ac-Use-AC_LANG_PROGRAM-for-AC_LINK_IFELSE-.patch
0004-scripts-find-debuginfo.in-Add-q-quiet.patch
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 5.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Tue May 10 2022 Romanos Skiadas <rom.skiad@gmail.com> - 5.0-4
- Remove CFLAGS/LDFLAGS sed as they are already set to "" by debugedit
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 5.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Jul 30 2021 Mark Wielaard <mjw@fedoraproject.org> - 5.0-2
- Add testsuite fix for GCC 11.2.1 - Add testsuite fix for GCC 11.2.1
* Mon Jul 26 2021 Mark Wielaard <mjw@fedoraproject.org> - 5.0-1 * Mon Jul 26 2021 Mark Wielaard <mjw@redhat.com> - 5.0-1
- Upgrade to upstream 5.0 release. - Upgrade to upstream 5.0 release.
- Removes find-debuginfo .sh suffix.
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Thu Jun 17 2021 Mark Wielaard <mjw@fedoraproject.org> - 0.3-1
- Update to upstream 0.3 pre-release. Removes find-debuginfo .sh suffix.
- This release still has a find-debuginfo.sh -> find-debuginfo symlink. - This release still has a find-debuginfo.sh -> find-debuginfo symlink.
* Wed May 5 2021 Mark Wielaard <mjw@fedoraproject.org> - 0.2-1 * Wed May 5 2021 Mark Wielaard <mjw@fedoraproject.org> - 0.2-1

Loading…
Cancel
Save