Skip to content
Permalink
Browse files

Merge pull request #53712 from liff/bear/fix-wrapper-detection

bear: fix wrapper detection patch by checking result of find_executable
  • Loading branch information...
fpletz committed Jun 11, 2019
2 parents da6a078 + 4cb889f commit fdd75fc6f1d31aff21a4691e6cc8b5199f79934b
Showing with 14 additions and 10 deletions.
  1. +14 −10 pkgs/development/tools/build-managers/bear/ignore_wrapper.patch
@@ -1,23 +1,27 @@
--- Bear-2.3.11-src/bear/main.py.in 1970-01-01 01:00:01.000000000 +0100
+++ Bear-2.3.11-src-patch/bear/main.py.in 1970-01-01 01:00:01.000000000 +0100
@@ -49,6 +49,7 @@
--- a/bear/main.py.in
+++ b/bear/main.py.in
@@ -49,6 +49,7 @@ import tempfile
import shutil
import contextlib
import logging
+from distutils.spawn import find_executable

# Map of ignored compiler option for the creation of a compilation database.
# This map is used in _split_command method, which classifies the parameters
@@ -540,7 +541,11 @@
any(pattern.match(cmd) for pattern in COMPILER_PATTERNS_CXX)
@@ -569,7 +570,15 @@ class Compilation:
(compiler, language, rest of the command) otherwise """

if command: # not empty list will allow to index '0' and '1:'
- executable = os.path.basename(command[0]) # type: str
+ absolute_executable = os.path.realpath(find_executable(command[0]))
+ if 'wrapper' in absolute_executable:
+ return None
+
+ executable = os.path.basename(absolute_executable) # type: str
+ executable_file = find_executable(command[0])
+ if executable_file:
+ absolute_executable = os.path.realpath(executable_file)
+ # Ignore Nix wrappers.
+ if 'wrapper' in absolute_executable:
+ return None
+ executable = os.path.basename(absolute_executable)
+ else:
+ executable = os.path.basename(command[0])
parameters = command[1:] # type: List[str]
# 'wrapper' 'parameters' and
# 'wrapper' 'compiler' 'parameters' are valid.

0 comments on commit fdd75fc

Please sign in to comment.
You can’t perform that action at this time.