`slurm_get_rem_time` interface updated in Slurm 26, breaks building libyogrt
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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