De acordo com a página man _syscall (2) , a macro _syscall0
pode ser obsoleto e requer #include <linux/unistd.h>
; de fato, o Linux 4.x não tem isso
No entanto, você pode instalar musl-libc e usar sua função _syscall
.
E você pode simplesmente usar o syscall (2) indireto no seu código de usuário . Então o seu programa de testes seria
#define _GNU_SOURCE /* See feature_test_macros(7) */
#include <unistd.h>
#include <sys/syscall.h>
#include <stdio.h>
#define __NR_helloworld 323
static inline long mysys_helloworld(void) { return syscall(__NR_helloworld,NULL); }
int main (int argc, char**argv) {
printf("will do the helloworld syscall\n");
if (mysys_helloworld()) perror("helloworld");
return 0;
}
O código acima não foi testado!