This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Patch: libstdc++-v3 irix6.2 fix for 70 broken g++ testsuite results
- From: "Kaveh R. Ghazi" <ghazi at caip dot rutgers dot edu>
- To: gcc-patches at gcc dot gnu dot org, libstdc++ at gcc dot gnu dot org
- Cc: bkoz at redhat dot com, cgf at redhat dot com, ro at TechFak dot Uni-Bielefeld dot DE
- Date: Sun, 5 May 2002 12:10:13 -0400 (EDT)
- Subject: Patch: libstdc++-v3 irix6.2 fix for 70 broken g++ testsuite results
This patch corrects a problem when running the g++ testsuite on
irix6.2. I'd very much like the comments I inserted in the patch to
stand on their own so I purposely left out any explanation here. If
there not clear below, let me know and I'll gladly revise them.
This patch corrects the roughly 70 failure difference in the g++
results between here:
http://gcc.gnu.org/ml/gcc-testresults/2002-04/msg00090.html
and here:
http://gcc.gnu.org/ml/gcc-testresults/2002-04/msg00149.html
and I've been using it ever since.
Tested on mips-sgi-irix6.2. Ok to install on the trunk?
(I'll privately queue it up for 3.1.1.)
Thanks,
--Kaveh
2002-05-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* config/os/irix/irix5.2/bits/os_defines.h (_SGI_SOURCE,
__EXTENSIONS__): Ensure they are always defined.
diff -rup orig/egcc-3.1-CVS20020504/libstdc++-v3/config/os/irix/irix5.2/bits/os_defines.h egcc-3.1-CVS20020504/libstdc++-v3/config/os/irix/irix5.2/bits/os_defines.h
--- orig/egcc-3.1-CVS20020504/libstdc++-v3/config/os/irix/irix5.2/bits/os_defines.h Tue Oct 23 17:40:29 2001
+++ egcc-3.1-CVS20020504/libstdc++-v3/config/os/irix/irix5.2/bits/os_defines.h Sun May 5 11:53:51 2002
@@ -44,6 +44,22 @@
// the command-line.
#undef _POSIX_SOURCE
+/* On at least irix6.2 (which uses this file,) the header files are
+ very fragile and depend heavily on _SGI_SOURCE and __EXTENSIONS__
+ being defined. If they're not, then features disappear that
+ configure was relying on which then breaks the libstdc++ headers.
+ These macros are normally implicitly defined by the command-line,
+ however they are not defined when -ansi is used, and -ansi is
+ passed to the testsuite. The g++ test results (where it uses
+ libstdc++ headers) get dozens of extra failures without these
+ macros, so ensure they always are defined here. */
+#ifndef _SGI_SOURCE
+# define _SGI_SOURCE
+#endif
+#ifndef __EXTENSIONS__
+# define __EXTENSIONS__
+#endif
+
#define __off_t off_t
#define __off64_t off64_t
#define __ssize_t ssize_t