llnl / llnl/libyogrt

`slurm_get_rem_time` interface updated in Slurm 26, breaks building libyogrt

Open Beginner friendly
#22 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
8
Forks
10
PR merge metrics
No merged PRs in 30d

Description

Slurm 26 seems to have changed the argument for slurm_get_rem_time() from an `int` to a `slurm_step_id_t` struct. This appears to break the configure script, as that checks it against "0". https://github.com/llnl/libyogrt/blob/main/config/x_ac_slurm.m4#L53

```
configure:12301: /path/to/compiler-wrapper-1.1.0-i44iohyma6kkrf5ib2q2ki2ie2kvgy5t/libexec/spack/gcc/gcc -o conftest -g -O2 conftest.c -L/path/to/slurm-26-05-1-1-emfg6x372on65q25csv56qvwmeyvqr6j/lib -lslurm -lpthread -lcrypto >&5
conftest.c: In function 'main':
conftest.c:30:20: error: incompatible type for argument 1 of 'slurm_get_rem_time'
30 | slurm_get_rem_time(0);
| ^
| |
| int
In file included from conftest.c:26:
/path/to/slurm-26-05-1-1-emfg6x372on65q25csv56qvwmeyvqr6j/include/slurm/slurm.h:4238:48: note: expected 'slurm_step_id_t' but argument is of type 'int'
4238 | extern long slurm_get_rem_time(slurm_step_id_t step_id);
| ~~~~~~~~~~~~~~~~^~~~~~~
configure:12301: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Your One Get Remaining Time library"
| #define PACKAGE_TARNAME "libyogrt"
| #define PACKAGE_VERSION "1.35"
| #define PACKAGE_STRING "Your One Get Remaining Time library 1.35"
| #define PACKAGE_BUGREPORT "https://github.com/LLNL/libyogrt/issues"
| #define PACKAGE_URL "https://github.com/LLNL/libyogrt"
| #define PACKAGE "libyogrt"
| #define VERSION "1.35"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define LIBYOGRT_LT_CURRENT /**/
| #define LIBYOGRT_LT_REVISION /**/
| #define LIBYOGRT_LT_AGE /**/
| /* end confdefs.h. */
| #include
| int
| main ()
| {
| slurm_get_rem_time(0);
| ;
| return 0;
| }
configure:12315: result:
configure:12330: error: slurm is not in specified location!
```

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 with config/x_ac_slurm.m4 around line 53 and reproduce the configure check using Slurm 26 headers. Compare the probe with the slurm_get_rem_time() declaration shown in the report, then verify that configure recognizes the specified Slurm location and libyogrt builds successfully.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
build-system
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
70/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.