From 29fb60d8e8c6167bb572b0995d8f0fbe6bf09bd6 Mon Sep 17 00:00:00 2001 From: Istvan Reguly Date: Tue, 8 Feb 2022 11:00:26 +0100 Subject: [PATCH 1/4] Remove Toolchain::get_dependencies extra entries I'm using the `icx` compiler from OneAPI to compile OpenMP offload code. The following command used to query dependencies: `icx -M -O3 -g -fPIC -Wall -std=c99 -qopenmp -fopenmp-targets=spir64 /home/u83311/tmp/devito-jitcache-uid85311/260030861f24c1e2bc347afa986d9632be371ca9.c` returns the expected headers, as well as lines such as: `# __CLANG_OFFLOAD_BUNDLE____START__ openmp-spir64` which then later lead to issues because these are not files. I am not sure, what would be the ideal solution, perhaps filter out lines beginning with `#`? --- codepy/toolchain.py | 1 + 1 file changed, 1 insertion(+) diff --git a/codepy/toolchain.py b/codepy/toolchain.py index 0211b5c..b4bc54d 100644 --- a/codepy/toolchain.py +++ b/codepy/toolchain.py @@ -168,6 +168,7 @@ def get_dependencies(self, source_files): raise CompileError(f"getting dependencies failed: {stderr}") lines = join_continued_lines(stdout.split("\n")) + lines = [line for line in lines if not (len(line.strip())>0 and line.strip()[0]=='#')] from pytools import flatten return set(flatten( line.split()[2:] for line in lines)) From d7925a097f667824157da6743259c1def44817d5 Mon Sep 17 00:00:00 2001 From: Istvan Reguly Date: Tue, 8 Feb 2022 21:27:03 +0100 Subject: [PATCH 2/4] simplify line length check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Andreas Klöckner --- codepy/toolchain.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codepy/toolchain.py b/codepy/toolchain.py index b4bc54d..4176de8 100644 --- a/codepy/toolchain.py +++ b/codepy/toolchain.py @@ -168,7 +168,7 @@ def get_dependencies(self, source_files): raise CompileError(f"getting dependencies failed: {stderr}") lines = join_continued_lines(stdout.split("\n")) - lines = [line for line in lines if not (len(line.strip())>0 and line.strip()[0]=='#')] + lines = [line for line in lines if not line.strip() and line.strip()[0]=='#'] from pytools import flatten return set(flatten( line.split()[2:] for line in lines)) From cda4430ff4450e64ce5c623750c8fcdee7412493 Mon Sep 17 00:00:00 2001 From: Istvan Reguly Date: Tue, 8 Feb 2022 21:54:07 +0100 Subject: [PATCH 3/4] need brackets --- codepy/toolchain.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codepy/toolchain.py b/codepy/toolchain.py index 4176de8..d565606 100644 --- a/codepy/toolchain.py +++ b/codepy/toolchain.py @@ -168,7 +168,7 @@ def get_dependencies(self, source_files): raise CompileError(f"getting dependencies failed: {stderr}") lines = join_continued_lines(stdout.split("\n")) - lines = [line for line in lines if not line.strip() and line.strip()[0]=='#'] + lines = [line for line in lines if not (line.strip() and line.strip()[0]=="#")] from pytools import flatten return set(flatten( line.split()[2:] for line in lines)) From 1100f8c70e22ba6f99425c5270e376c5faaf23fe Mon Sep 17 00:00:00 2001 From: Istvan Reguly Date: Tue, 8 Feb 2022 22:29:41 +0100 Subject: [PATCH 4/4] Linebreak and whitespace --- codepy/toolchain.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/codepy/toolchain.py b/codepy/toolchain.py index d565606..7f8ccb9 100644 --- a/codepy/toolchain.py +++ b/codepy/toolchain.py @@ -168,7 +168,8 @@ def get_dependencies(self, source_files): raise CompileError(f"getting dependencies failed: {stderr}") lines = join_continued_lines(stdout.split("\n")) - lines = [line for line in lines if not (line.strip() and line.strip()[0]=="#")] + lines = [line for line in lines + if not (line.strip() and line.strip()[0] == "#")] from pytools import flatten return set(flatten( line.split()[2:] for line in lines))