All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 1/4] fix implicit declaration of syscall() in linux-user/mmap.c
@ 2012-12-10  6:59 John Spencer
  2012-12-10  6:59 ` [Qemu-devel] [PATCH 2/4] fix build error on ARM due to wrong glibc check John Spencer
                   ` (3 more replies)
  0 siblings, 4 replies; 13+ messages in thread
From: John Spencer @ 2012-12-10  6:59 UTC (permalink / raw)
  To: qemu-trivial; +Cc: qemu-devel, 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 <maillist-qemu@barfooze.de>

---
 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>
 
-- 
1.7.3.4

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [Qemu-devel] [PATCH 2/4] fix build error on ARM due to wrong glibc check
  2012-12-10  6:59 [Qemu-devel] [PATCH 1/4] fix implicit declaration of syscall() in linux-user/mmap.c John Spencer
@ 2012-12-10  6:59 ` John Spencer
  2012-12-10 17:46   ` Stefan Weil
  2012-12-18 16:23   ` [Qemu-devel] [Qemu-trivial] " Stefan Hajnoczi
  2012-12-10  6:59 ` [Qemu-devel] [PATCH 3/4] fix implicit declaration of syscall() in linux-user/syscall.c John Spencer
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 13+ messages in thread
From: John Spencer @ 2012-12-10  6:59 UTC (permalink / raw)
  To: qemu-trivial; +Cc: qemu-devel, John Spencer

the test for glibc < 2 "succeeds" wrongly for any non-glibc C library,
and breaks the build on musl libc.
we must first test if __GLIBC__ is defined at all, before using it
unconditionally.

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

---
 user-exec.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/user-exec.c b/user-exec.c
index ef9b172..cccc145 100644
--- a/user-exec.c
+++ b/user-exec.c
@@ -442,7 +442,7 @@ int cpu_signal_handler(int host_signum, void *pinfo,
     unsigned long pc;
     int is_write;
 
-#if (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ <= 3))
+#if defined(__GLIBC__) && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ <= 3))
     pc = uc->uc_mcontext.gregs[R15];
 #else
     pc = uc->uc_mcontext.arm_pc;
-- 
1.7.3.4

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [Qemu-devel] [PATCH 3/4] fix implicit declaration of syscall() in linux-user/syscall.c
  2012-12-10  6:59 [Qemu-devel] [PATCH 1/4] fix implicit declaration of syscall() in linux-user/mmap.c John Spencer
  2012-12-10  6:59 ` [Qemu-devel] [PATCH 2/4] fix build error on ARM due to wrong glibc check John Spencer
@ 2012-12-10  6:59 ` John Spencer
  2012-12-10 17:49   ` Stefan Weil
  2012-12-10  6:59 ` [Qemu-devel] [PATCH 4/4] linux-user/syscall.c: remove wrong forward decl of setgroups() John Spencer
  2012-12-10 17:44 ` [Qemu-devel] [PATCH 1/4] fix implicit declaration of syscall() in linux-user/mmap.c Stefan Weil
  3 siblings, 1 reply; 13+ messages in thread
From: John Spencer @ 2012-12-10  6:59 UTC (permalink / raw)
  To: qemu-trivial; +Cc: qemu-devel, John Spencer

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

---
 linux-user/syscall.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 31d5276..fabbcd7 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -39,6 +39,7 @@
 #include <sys/resource.h>
 #include <sys/mman.h>
 #include <sys/swap.h>
+#include <sys/syscall.h>
 #include <signal.h>
 #include <sched.h>
 #ifdef __ia64__
-- 
1.7.3.4

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [Qemu-devel] [PATCH 4/4] linux-user/syscall.c: remove wrong forward decl of setgroups()
  2012-12-10  6:59 [Qemu-devel] [PATCH 1/4] fix implicit declaration of syscall() in linux-user/mmap.c John Spencer
  2012-12-10  6:59 ` [Qemu-devel] [PATCH 2/4] fix build error on ARM due to wrong glibc check John Spencer
  2012-12-10  6:59 ` [Qemu-devel] [PATCH 3/4] fix implicit declaration of syscall() in linux-user/syscall.c John Spencer
@ 2012-12-10  6:59 ` John Spencer
  2012-12-10 17:47   ` Stefan Weil
  2012-12-18 16:23   ` [Qemu-devel] [Qemu-trivial] " Stefan Hajnoczi
  2012-12-10 17:44 ` [Qemu-devel] [PATCH 1/4] fix implicit declaration of syscall() in linux-user/mmap.c Stefan Weil
  3 siblings, 2 replies; 13+ messages in thread
From: John Spencer @ 2012-12-10  6:59 UTC (permalink / raw)
  To: qemu-trivial; +Cc: qemu-devel, 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
-- 
1.7.3.4

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH 1/4] fix implicit declaration of syscall() in linux-user/mmap.c
  2012-12-10  6:59 [Qemu-devel] [PATCH 1/4] fix implicit declaration of syscall() in linux-user/mmap.c John Spencer
                   ` (2 preceding siblings ...)
  2012-12-10  6:59 ` [Qemu-devel] [PATCH 4/4] linux-user/syscall.c: remove wrong forward decl of setgroups() John Spencer
@ 2012-12-10 17:44 ` Stefan Weil
  3 siblings, 0 replies; 13+ messages in thread
From: Stefan Weil @ 2012-12-10 17:44 UTC (permalink / raw)
  To: John Spencer; +Cc: qemu-trivial, qemu-devel

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<maillist-qemu@barfooze.de>
>
> ---
>   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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH 2/4] fix build error on ARM due to wrong glibc check
  2012-12-10  6:59 ` [Qemu-devel] [PATCH 2/4] fix build error on ARM due to wrong glibc check John Spencer
@ 2012-12-10 17:46   ` Stefan Weil
  2012-12-18 16:23   ` [Qemu-devel] [Qemu-trivial] " Stefan Hajnoczi
  1 sibling, 0 replies; 13+ messages in thread
From: Stefan Weil @ 2012-12-10 17:46 UTC (permalink / raw)
  To: John Spencer; +Cc: qemu-trivial, qemu-devel

Am 10.12.2012 07:59, schrieb John Spencer:
> the test for glibc<  2 "succeeds" wrongly for any non-glibc C library,
> and breaks the build on musl libc.
> we must first test if __GLIBC__ is defined at all, before using it
> unconditionally.
>
> Signed-off-by: John Spencer<maillist-qemu@barfooze.de>
>
> ---
>   user-exec.c |    2 +-
>   1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/user-exec.c b/user-exec.c
> index ef9b172..cccc145 100644
> --- a/user-exec.c
> +++ b/user-exec.c
> @@ -442,7 +442,7 @@ int cpu_signal_handler(int host_signum, void *pinfo,
>       unsigned long pc;
>       int is_write;
>
> -#if (__GLIBC__<  2 || (__GLIBC__ == 2&&  __GLIBC_MINOR__<= 3))
> +#if defined(__GLIBC__)&&  (__GLIBC__<  2 || (__GLIBC__ == 2&&  __GLIBC_MINOR__<= 3))
>       pc = uc->uc_mcontext.gregs[R15];
>   #else
>       pc = uc->uc_mcontext.arm_pc;
>    

Reviewed-by: Stefan Weil <sw@weilnetz.de>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH 4/4] linux-user/syscall.c: remove wrong forward decl of setgroups()
  2012-12-10  6:59 ` [Qemu-devel] [PATCH 4/4] linux-user/syscall.c: remove wrong forward decl of setgroups() John Spencer
@ 2012-12-10 17:47   ` Stefan Weil
  2012-12-18 16:23   ` [Qemu-devel] [Qemu-trivial] " Stefan Hajnoczi
  1 sibling, 0 replies; 13+ messages in thread
From: Stefan Weil @ 2012-12-10 17:47 UTC (permalink / raw)
  To: John Spencer; +Cc: qemu-trivial, qemu-devel

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>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH 3/4] fix implicit declaration of syscall() in linux-user/syscall.c
  2012-12-10  6:59 ` [Qemu-devel] [PATCH 3/4] fix implicit declaration of syscall() in linux-user/syscall.c John Spencer
@ 2012-12-10 17:49   ` Stefan Weil
  2012-12-11  1:23     ` John Spencer
  0 siblings, 1 reply; 13+ messages in thread
From: Stefan Weil @ 2012-12-10 17:49 UTC (permalink / raw)
  To: John Spencer; +Cc: qemu-trivial, qemu-devel

Am 10.12.2012 07:59, schrieb John Spencer:
> Signed-off-by: John Spencer<maillist-qemu@barfooze.de>
>
> ---
>   linux-user/syscall.c |    1 +
>   1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 31d5276..fabbcd7 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -39,6 +39,7 @@
>   #include<sys/resource.h>
>   #include<sys/mman.h>
>   #include<sys/swap.h>
> +#include<sys/syscall.h>
>   #include<signal.h>
>   #include<sched.h>
>   #ifdef __ia64__


This is a workaround for a missing declaration of function syscall
in musl's unistd.h. See my comment to patch 1 for more information.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH 3/4] fix implicit declaration of syscall() in linux-user/syscall.c
  2012-12-10 17:49   ` Stefan Weil
@ 2012-12-11  1:23     ` John Spencer
  2012-12-11  6:07       ` Stefan Weil
  0 siblings, 1 reply; 13+ messages in thread
From: John Spencer @ 2012-12-11  1:23 UTC (permalink / raw)
  To: Stefan Weil; +Cc: qemu-trivial, qemu-devel

On 12/10/2012 06:49 PM, Stefan Weil wrote:
> Am 10.12.2012 07:59, schrieb John Spencer:
>> +#include<sys/syscall.h>

>
> This is a workaround for a missing declaration of function syscall
> in musl's unistd.h. See my comment to patch 1 for more information.
>

thanks for noticing! fixed in musl:

http://git.musl-libc.org/cgit/musl/commit/?id=baf246e559e915a78a9703e10d15020c7edee423

how do we proceed with the 2 good patches ? is there anything i have to 
do to get them merged, now that you put the "Reviewed-by" stamp on them ?

Thanks,
John Spencer

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH 3/4] fix implicit declaration of syscall() in linux-user/syscall.c
  2012-12-11  1:23     ` John Spencer
@ 2012-12-11  6:07       ` Stefan Weil
  0 siblings, 0 replies; 13+ messages in thread
From: Stefan Weil @ 2012-12-11  6:07 UTC (permalink / raw)
  To: John Spencer; +Cc: qemu-trivial, Stefan Hajnoczi, qemu-devel

Am 11.12.2012 02:23, schrieb John Spencer:
> On 12/10/2012 06:49 PM, Stefan Weil wrote:
>> Am 10.12.2012 07:59, schrieb John Spencer:
>>> +#include<sys/syscall.h>
>
>>
>> This is a workaround for a missing declaration of function syscall
>> in musl's unistd.h. See my comment to patch 1 for more information.
>>
>
> thanks for noticing! fixed in musl:
>
> http://git.musl-libc.org/cgit/musl/commit/?id=baf246e559e915a78a9703e10d15020c7edee423 
>
>
> how do we proceed with the 2 good patches ? is there anything i have 
> to do to get them merged, now that you put the "Reviewed-by" stamp on 
> them ?
>
> Thanks,
> John Spencer


I assume that Stefan Hajnoczi will add them to the qemu-trivial queue.
Just wait and resend those patches if nothing happens the next two weeks.

Regards,
Stefan Weil

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [Qemu-trivial] [PATCH 2/4] fix build error on ARM due to wrong glibc check
  2012-12-10  6:59 ` [Qemu-devel] [PATCH 2/4] fix build error on ARM due to wrong glibc check John Spencer
  2012-12-10 17:46   ` Stefan Weil
@ 2012-12-18 16:23   ` Stefan Hajnoczi
  1 sibling, 0 replies; 13+ messages in thread
From: Stefan Hajnoczi @ 2012-12-18 16:23 UTC (permalink / raw)
  To: John Spencer; +Cc: qemu-trivial, qemu-devel

On Mon, Dec 10, 2012 at 07:59:44AM +0100, John Spencer wrote:
> the test for glibc < 2 "succeeds" wrongly for any non-glibc C library,
> and breaks the build on musl libc.
> we must first test if __GLIBC__ is defined at all, before using it
> unconditionally.
> 
> Signed-off-by: John Spencer <maillist-qemu@barfooze.de>
> 
> ---
>  user-exec.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)

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

Stefan

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [Qemu-trivial] [PATCH 4/4] linux-user/syscall.c: remove wrong forward decl of setgroups()
  2012-12-10  6:59 ` [Qemu-devel] [PATCH 4/4] linux-user/syscall.c: remove wrong forward decl of setgroups() John Spencer
  2012-12-10 17:47   ` Stefan Weil
@ 2012-12-18 16:23   ` Stefan Hajnoczi
  1 sibling, 0 replies; 13+ messages in thread
From: Stefan Hajnoczi @ 2012-12-18 16:23 UTC (permalink / raw)
  To: John Spencer; +Cc: qemu-trivial, qemu-devel

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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Qemu-devel] [PATCH 2/4] fix build error on ARM due to wrong glibc check
@ 2012-12-10  6:15 John Spencer
  0 siblings, 0 replies; 13+ messages in thread
From: John Spencer @ 2012-12-10  6:15 UTC (permalink / raw)
  To: qemu-trivial; +Cc: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 1 bytes --]



[-- Attachment #2: 0002-fix-build-error-on-ARM-due-to-wrong-glibc-check.patch --]
[-- Type: text/x-patch, Size: 1019 bytes --]

>From ae02bfc600bf8c4c8502e70bdf8dfcd332ebef02 Mon Sep 17 00:00:00 2001
From: John Spencer <maillist-qemu@barfooze.de>
Date: Mon, 10 Dec 2012 06:54:03 +0100
Subject: [PATCH 2/4] fix build error on ARM due to wrong glibc check

the test for glibc < 2 "succeeds" wrongly for any non-glibc C library,
and breaks the build on musl libc.
we must first test if __GLIBC__ is defined at all, before using it
unconditionally.

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

---
 user-exec.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/user-exec.c b/user-exec.c
index ef9b172..cccc145 100644
--- a/user-exec.c
+++ b/user-exec.c
@@ -442,7 +442,7 @@ int cpu_signal_handler(int host_signum, void *pinfo,
     unsigned long pc;
     int is_write;
 
-#if (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ <= 3))
+#if defined(__GLIBC__) && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ <= 3))
     pc = uc->uc_mcontext.gregs[R15];
 #else
     pc = uc->uc_mcontext.arm_pc;
-- 
1.7.3.4


^ permalink raw reply related	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2012-12-18 16:24 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-12-10  6:59 [Qemu-devel] [PATCH 1/4] fix implicit declaration of syscall() in linux-user/mmap.c John Spencer
2012-12-10  6:59 ` [Qemu-devel] [PATCH 2/4] fix build error on ARM due to wrong glibc check John Spencer
2012-12-10 17:46   ` Stefan Weil
2012-12-18 16:23   ` [Qemu-devel] [Qemu-trivial] " Stefan Hajnoczi
2012-12-10  6:59 ` [Qemu-devel] [PATCH 3/4] fix implicit declaration of syscall() in linux-user/syscall.c John Spencer
2012-12-10 17:49   ` Stefan Weil
2012-12-11  1:23     ` John Spencer
2012-12-11  6:07       ` Stefan Weil
2012-12-10  6:59 ` [Qemu-devel] [PATCH 4/4] linux-user/syscall.c: remove wrong forward decl of setgroups() John Spencer
2012-12-10 17:47   ` Stefan Weil
2012-12-18 16:23   ` [Qemu-devel] [Qemu-trivial] " Stefan Hajnoczi
2012-12-10 17:44 ` [Qemu-devel] [PATCH 1/4] fix implicit declaration of syscall() in linux-user/mmap.c Stefan Weil
  -- strict thread matches above, loose matches on Subject: below --
2012-12-10  6:15 [Qemu-devel] [PATCH 2/4] fix build error on ARM due to wrong glibc check John Spencer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.