2017-06-30 15:03:35 +00:00
|
|
|
From b4d166652011f0d0e8573feb616283698f6cf848 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Mark Wielaard <mark@klomp.org>
|
|
|
|
Date: Wed, 28 Jun 2017 13:34:55 +0200
|
2017-07-18 13:49:11 +00:00
|
|
|
Subject: [PATCH] find-debuginfo.sh: Filter out all <built-in> like fake file
|
|
|
|
names.
|
2017-06-30 15:03:35 +00:00
|
|
|
|
|
|
|
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>
|
|
|
|
(cherry picked from commit ff239ff4b06c86485eccaf8f4ecadc9bceb34748)
|
|
|
|
---
|
|
|
|
scripts/find-debuginfo.sh | 6 +++++-
|
|
|
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
diff --git a/scripts/find-debuginfo.sh b/scripts/find-debuginfo.sh
|
|
|
|
index bede833d7..eb62a158a 100644
|
|
|
|
--- 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
|