Skip to content

Commit 3f1eafa

Browse files
authored
[OpenMP] Provide __NR_sched_[gs]etaffinity on Linux/sparc64 (llvm#138525)
`libomp` doesn't currently build on Linux/sparc64 due to lack of `__NR_sched_setaffinity` and `__NR_sched_getaffinity` definitions. This patch provides those. Tested on `sparcv9-sun-solaris2.11`, `sparc64-unknown-linux-gnu`, `amd64-pc-solaris2.11`, and `x86_64-pc-linux-gnu`.
1 parent c24b9ca commit 3f1eafa

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

openmp/runtime/src/kmp_affinity.h

+11
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,17 @@ class KMPHwlocAffinity : public KMPAffinity {
311311
#elif __NR_sched_getaffinity != 240
312312
#error Wrong code for getaffinity system call.
313313
#endif /* __NR_sched_getaffinity */
314+
#elif KMP_ARCH_SPARC
315+
#ifndef __NR_sched_setaffinity
316+
#define __NR_sched_setaffinity 261
317+
#elif __NR_sched_setaffinity != 261
318+
#error Wrong code for setaffinity system call.
319+
#endif /* __NR_sched_setaffinity */
320+
#ifndef __NR_sched_getaffinity
321+
#define __NR_sched_getaffinity 260
322+
#elif __NR_sched_getaffinity != 260
323+
#error Wrong code for getaffinity system call.
324+
#endif /* __NR_sched_getaffinity */
314325
#else
315326
#error Unknown or unsupported architecture
316327
#endif /* KMP_ARCH_* */

0 commit comments

Comments
 (0)