|
From: | Stefan Weil |
Subject: | Re: [Qemu-devel] [PATCH 1/4] fix implicit declaration of syscall() in linux-user/mmap.c |
Date: | Mon, 10 Dec 2012 18:44:40 +0100 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.16) Gecko/20121027 Iceowl/1.0b1 Icedove/3.0.11 |
Am 10.12.2012 07:59, schrieb John Spencer:
on glibc, this header is getting pulled in automatically via another header, however on musl we need to include it explicitly. linux-user/mmap.c:705:9: warning: implicit declaration of function 'syscall' linux-user/mmap.c:705:9: warning: nested extern declaration of 'syscall' Signed-off-by: John Spencer<address@hidden> --- linux-user/mmap.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/linux-user/mmap.c b/linux-user/mmap.c index b412e3f..171b449 100644 --- a/linux-user/mmap.c +++ b/linux-user/mmap.c @@ -25,6 +25,7 @@ #include<sys/types.h> #include<sys/stat.h> #include<sys/mman.h> +#include<sys/syscall.h> #include<linux/mman.h> #include<linux/unistd.h>
According to the Linux man-page SYSCALL(2), syscall is declared in unistd.h. On my Debian Linux with glibc, this information is correct. Here is the result of grep:/usr/include/unistd.h:extern long int syscall (long int __sysno, ...) __THROW;
unistd.h is included implicitly via qemu-common.h, so if you don't get the declaration, there is a buggy implementation of the header files in musl: http://git.musl-libc.org/cgit/musl/plain/include/unistd.h does not match the Linux documentation. Please report this to the musl developers. Regards Stefan Weil
[Prev in Thread] | Current Thread | [Next in Thread] |