I can't get the simple program below to compile on CentOS 5 beta. It compiles
(and runs) just fine on CentOS 4.4, and I'm using gettid() as described in the
man page. I wonder if this is a problem with RHEL 5 as well, but I don't have a
system to test on. I also wonder if this is a gcc 4.1.1 issue or something
missing in CentOS 5.
The issue is that the _syscall0 macro is not defined anywhere. If I copy and
paste the following definition for _syscall0 from a CentOS 4.4 system into the
test program, it works just fine:
#define _syscall0(type,name) \
type name(void) \
{\
return syscall(__NR_##name);\
}
Has anyone else run into this problem?
Alfred
#include <stdio.h>
#include <sys/types.h>
#include <linux/unistd.h>
#include <errno.h>
_syscall0(pid_t, gettid)
int main(int argc, char *argv[])
{
printf("My tid is 0x%08x\n", gettid());
}