Message ID | 1303833400-13458-1-git-send-email-peter.maydell@linaro.org |
---|---|
State | Accepted |
Commit | 19e83f6bdf86f92ee90db77d606affe5b08f8b40 |
Headers | show |
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 > >
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
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(-)