* [Qemu-devel] [PATCH v2] configure: Make epoll_create1 test work around SPARC glibc bug
@ 2011-04-26 15:56 Peter Maydell
2011-04-26 20:08 ` Blue Swirl
0 siblings, 1 reply; 2+ messages in thread
From: Peter Maydell @ 2011-04-26 15:56 UTC (permalink / raw)
To: qemu-devel; +Cc: Blue Swirl, patches
Work around a SPARC glibc bug which caused the epoll_create1 configure
test to wrongly claim that the function was present. Some versions of
SPARC glibc provided the function in the library but didn't declare
it in the include file; the result is that gcc warns about an implicit
declaration but a link succeeds. So we reference the function as a
value rather than a function call to induce a compile time error
if the declaration was not present.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
v1->v2: instead of compiling the test with -Werror, use the approach
suggested by Blue Swirl to force a compile-time failure if the
declaration is missing from the header file.
configure | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/configure b/configure
index de44bac..2bbbbf5 100755
--- a/configure
+++ b/configure
@@ -2225,7 +2225,15 @@ cat > $TMPC << EOF
int main(void)
{
- epoll_create1(0);
+ /* Note that we use epoll_create1 as a value, not as
+ * a function being called. This is necessary so that on
+ * old SPARC glibc versions where the function was present in
+ * the library but not declared in the header file we will
+ * fail the configure check. (Otherwise we will get a compiler
+ * warning but not an error, and will proceed to fail the
+ * qemu compile where we compile with -Werror.)
+ */
+ epoll_create1;
return 0;
}
EOF
--
1.7.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Qemu-devel] [PATCH v2] configure: Make epoll_create1 test work around SPARC glibc bug
2011-04-26 15:56 [Qemu-devel] [PATCH v2] configure: Make epoll_create1 test work around SPARC glibc bug Peter Maydell
@ 2011-04-26 20:08 ` Blue Swirl
0 siblings, 0 replies; 2+ messages in thread
From: Blue Swirl @ 2011-04-26 20:08 UTC (permalink / raw)
To: Peter Maydell; +Cc: qemu-devel, patches
Thanks, applied.
On Tue, Apr 26, 2011 at 6:56 PM, Peter Maydell <peter.maydell@linaro.org> wrote:
> Work around a SPARC glibc bug which caused the epoll_create1 configure
> test to wrongly claim that the function was present. Some versions of
> SPARC glibc provided the function in the library but didn't declare
> it in the include file; the result is that gcc warns about an implicit
> declaration but a link succeeds. So we reference the function as a
> value rather than a function call to induce a compile time error
> if the declaration was not present.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> v1->v2: instead of compiling the test with -Werror, use the approach
> suggested by Blue Swirl to force a compile-time failure if the
> declaration is missing from the header file.
>
> configure | 10 +++++++++-
> 1 files changed, 9 insertions(+), 1 deletions(-)
>
> diff --git a/configure b/configure
> index de44bac..2bbbbf5 100755
> --- a/configure
> +++ b/configure
> @@ -2225,7 +2225,15 @@ cat > $TMPC << EOF
>
> int main(void)
> {
> - epoll_create1(0);
> + /* Note that we use epoll_create1 as a value, not as
> + * a function being called. This is necessary so that on
> + * old SPARC glibc versions where the function was present in
> + * the library but not declared in the header file we will
> + * fail the configure check. (Otherwise we will get a compiler
> + * warning but not an error, and will proceed to fail the
> + * qemu compile where we compile with -Werror.)
> + */
> + epoll_create1;
> return 0;
> }
> EOF
> --
> 1.7.1
>
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-04-26 20:09 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-26 15:56 [Qemu-devel] [PATCH v2] configure: Make epoll_create1 test work around SPARC glibc bug Peter Maydell
2011-04-26 20:08 ` Blue Swirl
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).