Patchwork [4/4] linux-user/syscall.c: remove wrong forward decl of setgroups()

login
register
mail settings
Submitter John Spencer
Date Dec. 10, 2012, 6:59 a.m.
Message ID <1355122786-29243-4-git-send-email-maillist-qemu@barfooze.de>
Download mbox | patch
Permalink /patch/204825/
State New
Headers show

Comments

John Spencer - Dec. 10, 2012, 6:59 a.m.
this declaration is wrong:
the correct prototype on linux is:
int setgroups(size_t size, const gid_t *list);

since by default musl libc exposes this symbol in unistd.h
additionally to grp.h, the wrong declaration causes a build error.

the proper fix is to simply include the correct header.

Signed-off-by: John Spencer <maillist-qemu@barfooze.de>

---
 linux-user/syscall.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Stefan Weil - Dec. 10, 2012, 5:47 p.m.
Am 10.12.2012 07:59, schrieb John Spencer:
> this declaration is wrong:
> the correct prototype on linux is:
> int setgroups(size_t size, const gid_t *list);
>
> since by default musl libc exposes this symbol in unistd.h
> additionally to grp.h, the wrong declaration causes a build error.
>
> the proper fix is to simply include the correct header.
>
> Signed-off-by: John Spencer<maillist-qemu@barfooze.de>
>
> ---
>   linux-user/syscall.c |    2 +-
>   1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index fabbcd7..665316e 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -28,6 +28,7 @@
>   #include<fcntl.h>
>   #include<time.h>
>   #include<limits.h>
> +#include<grp.h>
>   #include<sys/types.h>
>   #include<sys/ipc.h>
>   #include<sys/msg.h>
> @@ -585,7 +586,6 @@ extern int personality(int);
>   extern int flock(int, int);
>   extern int setfsuid(int);
>   extern int setfsgid(int);
> -extern int setgroups(int, gid_t *);
>
>   /* ARM EABI and MIPS expect 64bit types aligned even on pairs or registers */
>   #ifdef TARGET_ARM
>    


Reviewed-by: Stefan Weil <sw@weilnetz.de>
Stefan Hajnoczi - Dec. 18, 2012, 4:23 p.m.
On Mon, Dec 10, 2012 at 07:59:46AM +0100, John Spencer wrote:
> this declaration is wrong:
> the correct prototype on linux is:
> int setgroups(size_t size, const gid_t *list);
> 
> since by default musl libc exposes this symbol in unistd.h
> additionally to grp.h, the wrong declaration causes a build error.
> 
> the proper fix is to simply include the correct header.
> 
> Signed-off-by: John Spencer <maillist-qemu@barfooze.de>
> 
> ---
>  linux-user/syscall.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)

Thanks, applied Patch 4 to the trivial patches tree:
https://github.com/stefanha/qemu/commits/trivial-patches

Stefan

Patch

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index fabbcd7..665316e 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -28,6 +28,7 @@ 
 #include <fcntl.h>
 #include <time.h>
 #include <limits.h>
+#include <grp.h>
 #include <sys/types.h>
 #include <sys/ipc.h>
 #include <sys/msg.h>
@@ -585,7 +586,6 @@  extern int personality(int);
 extern int flock(int, int);
 extern int setfsuid(int);
 extern int setfsgid(int);
-extern int setgroups(int, gid_t *);
 
 /* ARM EABI and MIPS expect 64bit types aligned even on pairs or registers */
 #ifdef TARGET_ARM