37 lines
1.7 KiB
Diff
37 lines
1.7 KiB
Diff
|
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
|