Skip to content

linux-power9.jsonl contains hardcoded absolute compiler path that breaks builds on other ppc64leΒ #151

@LalatenduMohanty

Description

@LalatenduMohanty

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:

  1. Regenerate linux-power9.jsonl on a system where gcc is in PATH without an absolute path, or
  2. 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)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions