llnl / llnl/Spindle

configure --with-glibc-be-dir override is silently ignored

Open Beginner friendly
#173 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
110
Forks
35
Avg merge
1d 16h
Merged PRs (30d)
2

Description

### Bug:
The --with-glibc-be-dir=DIR configure option is documented as the supported method for specifying a non-standard back-end glibc path on heterogeneous clusters.

The option is silently ignored at configure time due to an argument-processing ordering bug.

Detection block:
https://github.com/llnl/Spindle/blob/ba9bbcc84de7f66ed10dfa45e266c7d8aecd0c85/configure.common.ac#L374-L379

But argument parsing happens 40 lines later and GLIBC_BE_DIR is already set, so the assignment `GLIBC_BE_DIR=${withval}` has no effect
https://github.com/llnl/Spindle/blob/ba9bbcc84de7f66ed10dfa45e266c7d8aecd0c85/configure.common.ac#L416-L418

### Steps to recreate:

```
cd containers/spindle-serial-ubuntu
docker compose build
docker compose up -d
docker exec spindlenode grep 'GLIBC_BE_DIR' /home/spindleuser/Spindle-build/src/client/Makefile
```
```
GLIBC_BE_DIR = /lib/aarch64-linux-gnu
```

Reconfigure with glibc being set to a false path:
```
docker exec spindlenode bash -c '
cd ~/Spindle-build
../../Spindle/configure \
--prefix=~/Spindle-inst \
--enable-sec-munge \
--with-rm=serial \
--with-localstorage=/tmp \
--with-glibc-be-dir=/definitely/not/real \
2>&1 | grep -i glibc
'
docker exec spindlenode grep 'GLIBC_BE_DIR' /home/spindleuser/Spindle-build/src/client/Makefile
```
```
GLIBC_BE_DIR = /lib/aarch64-linux-gnu
```

### Fix:

Move `AC_ARG_WITH(glibc-be-dir, ...)` before the detection block so the `if test "x$GLIBC_BE_DIR" = "x"` guard correctly short-circuits when a user provides an explicit path.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in configure.common.ac at the glibc back-end detection block around lines 374-379 and the AC_ARG_WITH(glibc-be-dir) handling around lines 416-418. Rebuild or reconfigure using the commands in the issue, then inspect src/client/Makefile; done means an explicitly supplied path such as /definitely/not/real is preserved in GLIBC_BE_DIR instead of being replaced by detected glibc.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, shell
Domain
build-system
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
76/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.