From 2102b2fe72df5d96409d2f7b0a9a6d6b702598e3 Mon Sep 17 00:00:00 2001
From: Roger Sayle <roger@eyesopen.com>
Date: Thu, 25 Nov 2004 01:41:20 +0000
Subject: [PATCH] configure.ac: Tweak test for HAVE_DECL_LDGETNAME to avoid a
 system header conflict on AIX 5.2.

	* configure.ac: Tweak test for HAVE_DECL_LDGETNAME to avoid a
	system header conflict on AIX 5.2.
	* configure: Regenerate.

From-SVN: r91266
---
 gcc/ChangeLog    | 6 ++++++
 gcc/configure    | 6 ++++++
 gcc/configure.ac | 6 ++++++
 3 files changed, 18 insertions(+)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ad7c33f1c7fb..5f5865c22dc7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2004-11-24  Roger Sayle  <roger@eyesopen.com>
+
+	* configure.ac: Tweak test for HAVE_DECL_LDGETNAME to avoid a
+	system header conflict on AIX 5.2.
+	* configure: Regenerate.
+
 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
 
 	* tree-outof-ssa.c (coalesce_abnormal_edges): Use e->dest_idx
diff --git a/gcc/configure b/gcc/configure
index 5ccbd34834cc..48ec4dd1e80a 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -11355,6 +11355,10 @@ _ACEOF
 fi
 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
+# On AIX 5.2, <ldfcn.h> conflicts with <fcntl.h>, as both define incompatible
+# FREAD and FWRITE macros.  Fortunately, for GCC's single usage of ldgetname
+# in collect2.c, <fcntl.h> isn't visible, but the configure test below needs
+# to undef these macros to get the correct value for HAVE_DECL_LDGETNAME.
 
 for ac_func in ldgetname
 do
@@ -11376,6 +11380,8 @@ cat >>conftest.$ac_ext <<_ACEOF
 #include "ansidecl.h"
 #include "system.h"
 #ifdef HAVE_LDFCN_H
+#undef FREAD
+#undef FWRITE
 #include <ldfcn.h>
 #endif
 
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 80eb7161ca84..c7e49c0fc45f 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -1053,10 +1053,16 @@ AC_TRY_COMPILE([
 ],[rlim_t l = 0;],,[AC_DEFINE([rlim_t],[long],
 [Define to \`long' if <sys/resource.h> doesn't define.])])
 
+# On AIX 5.2, <ldfcn.h> conflicts with <fcntl.h>, as both define incompatible
+# FREAD and FWRITE macros.  Fortunately, for GCC's single usage of ldgetname
+# in collect2.c, <fcntl.h> isn't visible, but the configure test below needs
+# to undef these macros to get the correct value for HAVE_DECL_LDGETNAME.
 gcc_AC_CHECK_DECLS(ldgetname, , ,[
 #include "ansidecl.h"
 #include "system.h"
 #ifdef HAVE_LDFCN_H
+#undef FREAD
+#undef FWRITE
 #include <ldfcn.h>
 #endif
 ])
-- 
GitLab