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