Add find-debuginfo-filter-built-ins.patch.

This commit is contained in:
Mark Wielaard 2017-06-28 22:25:38 +02:00
parent 6e205bd77e
commit 7a3daadb26
2 changed files with 40 additions and 0 deletions

View File

@ -0,0 +1,36 @@
commit 78df22afc540c6c34003c3cb8ecc3ee686fbef76
Author: Mark Wielaard <mark@klomp.org>
Date: Wed Jun 28 13:25:12 2017 +0200
find-debuginfo.sh: Filter out all <built-in> like fake file names.
There is no official way to mark an instruction range as being not
part of some actual source code, but as part of a compiler built-in
construct in DWARF. So different compilers have come up with fake
source file names like <built-in> or <__thread_local_inner macros>.
We already filtered out the strings "<internal>" and "<built-in>".
Just filter out all '(^|/)<[a-z _-]+>$'. They are fake files!
This is mainly to appease the rustc compiler which generates lots of
different variants to encode some instruction sequence is part of an
compiler generated macro expansion.
Signed-off-by: Mark Wielaard <mark@klomp.org>
diff --git a/scripts/find-debuginfo.sh b/scripts/find-debuginfo.sh
index 0233d92..555e7b8 100755
--- a/scripts/find-debuginfo.sh
+++ b/scripts/find-debuginfo.sh
@@ -502,7 +502,11 @@ if [ -s "$SOURCEFILE" ]; then
fi
mkdir -p "${RPM_BUILD_ROOT}${debug_dest_name}"
- LC_ALL=C sort -z -u "$SOURCEFILE" | grep -E -v -z '(<internal>|<built-in>)$' |
+ # Filter out anything compiler generated which isn't a source file.
+ # e.g. <internal>, <built-in>, <__thread_local_inner macros>.
+ # Some compilers generate them as if they are part of the working
+ # directory (which is why we match against ^ or /).
+ LC_ALL=C sort -z -u "$SOURCEFILE" | grep -E -v -z '(^|/)<[a-z _-]+>$' |
(cd "${debug_base_name}"; cpio -pd0mL "${RPM_BUILD_ROOT}${debug_dest_name}")
# stupid cpio creates new directories in mode 0700,
# and non-standard modes may be inherented from original directories, fixup

View File

@ -105,6 +105,9 @@ Patch286: debugsrc-and-sub-debuginfo-packages.patch
# debugedit check prefix match ends with slash. # debugedit check prefix match ends with slash.
Patch290: debugedit-prefix.patch Patch290: debugedit-prefix.patch
# find-debuginfo.sh: Filter out all <built-in> like fake file names.
Patch291: find-debuginfo-filter-built-ins.patch
# OpenSSL backend # OpenSSL backend
Patch300: 0001-Add-OpenSSL-support-for-digest-and-signatures.patch Patch300: 0001-Add-OpenSSL-support-for-digest-and-signatures.patch
@ -616,6 +619,7 @@ exit 0
%changelog %changelog
* Thu Jun 29 2017 Mark Wielaard <mjw@fedoraproject.org> * Thu Jun 29 2017 Mark Wielaard <mjw@fedoraproject.org>
- Add debugedit-prefix.patch. - Add debugedit-prefix.patch.
- Add find-debuginfo-filter-built-ins.patch.
* Wed Jun 28 2017 Mark Wielaard <mjw@fedoraproject.org> - 4.13.0.1-27 * Wed Jun 28 2017 Mark Wielaard <mjw@fedoraproject.org> - 4.13.0.1-27
- Add find-debuginfo-split-traversal-and-extraction-fix.patch (#1465170) - Add find-debuginfo-split-traversal-and-extraction-fix.patch (#1465170)