Description
The blis/_src/make/linux-power9.jsonl file contains a hardcoded absolute path to gcc that is specific to the system where the file was generated. This causes builds to fail on any other ppc64le system.
Current Behavior
The linux-power9.jsonl file specifies:
{"compiler": "/opt/software/builder/developers/compilers/gcc/12.2/1/default/bin/gcc", ...}This path only exists on the specific HPC cluster ("bede") where the file was originally generated, causing builds to fail with "compiler not found" on any other ppc64le system.
Expected Behavior
The compiler should be specified as "gcc" (like in linux-x86_64.jsonl), allowing the system's PATH to resolve the correct compiler:
{"compiler": "gcc", ...}### Comparison with Other Architectures
| File |
Compiler Value |
linux-x86_64.jsonl |
"gcc" β
Portable |
linux-cortexa57.jsonl |
"gcc" β
Portable |
linux-generic.jsonl |
"gcc" β
Portable |
linux-power9.jsonl |
/opt/software/builder/.../gcc β Hardcoded |
Root Cause
The JSONL generation script (bin/generate-make-jsonl) captures the current environment's compiler path. On the HPC cluster where linux-power9.jsonl was generated, the environment module system set CC to an absolute path, which got baked into the file.
Suggested Fix
Either:
- Regenerate
linux-power9.jsonl on a system where gcc is in PATH without an absolute path, or
- Modify the generation script to normalize compiler paths (e.g., extract just the binary name if it's a standard compiler like gcc/clang)
Workaround
Setting BLIS_COMPILER=gcc environment variable during build overrides the hardcoded path.
Environment
- Architecture: ppc64le
- OS: RHEL 9 / Linux
- blis version: 1.2.0 (and earlier versions with power9 support)
Description
The
blis/_src/make/linux-power9.jsonlfile contains a hardcoded absolute path to gcc that is specific to the system where the file was generated. This causes builds to fail on any other ppc64le system.Current Behavior
The
linux-power9.jsonlfile specifies:{"compiler": "/opt/software/builder/developers/compilers/gcc/12.2/1/default/bin/gcc", ...}This path only exists on the specific HPC cluster ("bede") where the file was originally generated, causing builds to fail with "compiler not found" on any other ppc64le system.
Expected Behavior
The compiler should be specified as
"gcc"(like inlinux-x86_64.jsonl), allowing the system's PATH to resolve the correct compiler:{"compiler": "gcc", ...}### Comparison with Other Architectures
linux-x86_64.jsonl"gcc"β Portablelinux-cortexa57.jsonl"gcc"β Portablelinux-generic.jsonl"gcc"β Portablelinux-power9.jsonl/opt/software/builder/.../gccβ HardcodedRoot Cause
The JSONL generation script (
bin/generate-make-jsonl) captures the current environment's compiler path. On the HPC cluster wherelinux-power9.jsonlwas generated, the environment module system setCCto an absolute path, which got baked into the file.Suggested Fix
Either:
linux-power9.jsonlon a system wheregccis in PATH without an absolute path, orWorkaround
Setting
BLIS_COMPILER=gccenvironment variable during build overrides the hardcoded path.Environment