From patchwork Tue Apr 26 15:56:40 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 1179 Return-Path: Delivered-To: unknown Received: from imap.gmail.com (74.125.159.109) by localhost6.localdomain6 with IMAP4-SSL; 08 Jun 2011 14:49:57 -0000 Delivered-To: patches@linaro.org Received: by 10.224.2.73 with SMTP id 9cs76313qai; Tue, 26 Apr 2011 08:56:46 -0700 (PDT) Received: by 10.227.9.131 with SMTP id l3mr969139wbl.54.1303833405824; Tue, 26 Apr 2011 08:56:45 -0700 (PDT) Received: from mnementh.archaic.org.uk (mnementh.archaic.org.uk [81.2.115.146]) by mx.google.com with ESMTPS id l2si15388268wba.113.2011.04.26.08.56.45 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 26 Apr 2011 08:56:45 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of pm215@archaic.org.uk designates 81.2.115.146 as permitted sender) client-ip=81.2.115.146; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of pm215@archaic.org.uk designates 81.2.115.146 as permitted sender) smtp.mail=pm215@archaic.org.uk Received: from pm215 by mnementh.archaic.org.uk with local (Exim 4.72) (envelope-from ) id 1QEkcy-0003VV-DE; Tue, 26 Apr 2011 16:56:40 +0100 From: Peter Maydell To: qemu-devel@nongnu.org Cc: Blue Swirl , patches@linaro.org Subject: [PATCH v2] configure: Make epoll_create1 test work around SPARC glibc bug Date: Tue, 26 Apr 2011 16:56:40 +0100 Message-Id: <1303833400-13458-1-git-send-email-peter.maydell@linaro.org> X-Mailer: git-send-email 1.7.2.5 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 --- 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