We cannot use a function call inside INTERNAL_SYSCALL, the macro does not expands its arguments correctly. This has been noticed on x86-64 (thanks Andreas Schwab and Thorsten Kukuk) but it should be a problem on other architectures also. Ok to commit the appended patch? Andreas 2004-04-09 Andreas Jaeger * sysdeps/unix/sysv/linux/sched_setaffinity.c (__sched_setaffinity_new): Do not use a call in INTERNAL_SYSCALL. ============================================================ Index: sysdeps/unix/sysv/linux/sched_setaffinity.c --- sysdeps/unix/sysv/linux/sched_setaffinity.c 29 Mar 2004 21:59:17 -0000 1.4 +++ sysdeps/unix/sysv/linux/sched_setaffinity.c 9 Apr 2004 07:30:29 -0000 @@ -40,8 +40,9 @@ __sched_setaffinity_new (pid_t pid, size size_t psize = 128; void *p = alloca (psize); + pid_t pid = getpid (); - while (res = INTERNAL_SYSCALL (sched_getaffinity, err, 3, getpid (), + while (res = INTERNAL_SYSCALL (sched_getaffinity, err, 3, pid, psize, p), INTERNAL_SYSCALL_ERROR_P (res, err) && INTERNAL_SYSCALL_ERRNO (res, err) == EINVAL) -- Andreas Jaeger, aj@suse.de, http://www.suse.de/~aj SuSE Linux AG, Maxfeldstr. 5, 90409 Nürnberg, Germany GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126