This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
PATCH: Enable pthreads on IRIX 6 (PR bootstrap/3456)
- From: Rainer Orth <ro at techfak dot uni-bielefeld dot de>
- To: gcc-patches at gcc dot gnu dot org
- Cc: libstdc++ at gcc dot gnu dot org
- Date: Thu, 12 Jul 2007 19:41:06 +0200 (MEST)
- Subject: PATCH: Enable pthreads on IRIX 6 (PR bootstrap/3456)
This patch enables pthread support for mips-sgi-irix6.5. Bootstrapped
without regressions.
Ok for mainline?
Rainer
-----------------------------------------------------------------------------
Rainer Orth, Faculty of Technology, Bielefeld University
Tue Jul 3 14:45:04 2007 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
gcc:
PR bootstrap/3456
* config.gcc (mips-sgi-irix[56]*): Enable pthread support.
* doc/install.texi (mips-sgi-irix6): pthread support works now.
libstdc++-v3:
PR bootstrap/3456
* testsuite/22_locale/locale/cons/12658_thread-1.cc: Enable on
mips-sgi-irix6*.
* testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
* testsuite/thread/18185.cc: Likewise.
* testsuite/thread/pthread1.cc: Likewise.
* testsuite/thread/pthread2.cc: Likewise.
* testsuite/thread/pthread3.cc: Likewise.
* testsuite/thread/pthread4.cc: Likewise.
* testsuite/thread/pthread5.cc: Likewise.
* testsuite/thread/pthread6.cc: Likewise.
* testsuite/thread/pthread7-rope.cc: Likewise.
* testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc: Likewise.
* testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
Index: gcc/doc/install.texi
===================================================================
--- gcc/doc/install.texi (revision 126588)
+++ gcc/doc/install.texi (working copy)
@@ -3693,8 +3693,7 @@ To enable debugging for the O32 ABI, you
GNU binutils 2.15 or later. You may also use GNU @command{ld}, but
this is not required and currently causes some problems with Ada.
-The @option{--enable-threads} option doesn't currently work, a patch is
-in preparation for a future release. The @option{--enable-libgcj}
+The @option{--enable-libgcj}
option is disabled by default: IRIX 6 uses a very low default limit
(20480) for the command line length. Although @command{libtool} contains a
workaround for this problem, at least the N64 @samp{libgcj} is known not
Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc (revision 126588)
+++ gcc/config.gcc (working copy)
@@ -1638,9 +1638,9 @@ mips-sgi-irix[56]*)
then
tm_defines="${tm_defines} IRIX_USING_GNU_LD"
fi
-# if test x$enable_threads = xyes; then
-# thread_file='irix'
-# fi
+ case ${enable_threads}:${have_pthread_h} in
+ "":yes | yes:yes ) thread_file=posix ;;
+ esac
use_fixproto=yes
;;
mips*-*-netbsd*) # NetBSD/mips, either endian.
Index: libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread-1.cc
===================================================================
--- libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread-1.cc (revision 126588)
+++ libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread-1.cc (working copy)
@@ -1,9 +1,9 @@
-// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* } }
-// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* } }
+// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } }
+// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } }
// { dg-options "-pthreads" { target *-*-solaris* } }
// { dg-require-namedlocale "" }
-// Copyright (C) 2004, 2005 Free Software Foundation
+// Copyright (C) 2004, 2005, 2007 Free Software Foundation
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
Index: libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread-2.cc
===================================================================
--- libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread-2.cc (revision 126588)
+++ libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread-2.cc (working copy)
@@ -1,9 +1,9 @@
-// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* } }
-// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* } }
+// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } }
+// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } }
// { dg-options "-pthreads" { target *-*-solaris* } }
// { dg-require-namedlocale "" }
-// Copyright (C) 2004, 2005 Free Software Foundation
+// Copyright (C) 2004, 2005, 2007 Free Software Foundation
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
Index: libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc
===================================================================
--- libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc (revision 126588)
+++ libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc (working copy)
@@ -18,8 +18,8 @@
// TR1 2.2.2 Template class shared_ptr [tr.util.smartptr.shared]
-// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* } }
-// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* } }
+// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } }
+// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } }
// { dg-options "-pthreads" { target *-*-solaris* } }
#include <tr1/memory>
Index: libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc
===================================================================
--- libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc (revision 126588)
+++ libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc (working copy)
@@ -18,8 +18,8 @@
// TR1 2.2.2 Template class shared_ptr [tr.util.smartptr.shared]
-// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* } }
-// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* } }
+// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } }
+// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } }
// { dg-options "-pthreads" { target *-*-solaris* } }
#include <tr1/memory>
Index: libstdc++-v3/testsuite/thread/pthread4.cc
===================================================================
--- libstdc++-v3/testsuite/thread/pthread4.cc (revision 126588)
+++ libstdc++-v3/testsuite/thread/pthread4.cc (working copy)
@@ -21,8 +21,8 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* } }
-// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* } }
+// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } }
+// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } }
// { dg-options "-pthreads" { target *-*-solaris* } }
#include <string>
Index: libstdc++-v3/testsuite/thread/pthread5.cc
===================================================================
--- libstdc++-v3/testsuite/thread/pthread5.cc (revision 126588)
+++ libstdc++-v3/testsuite/thread/pthread5.cc (working copy)
@@ -21,8 +21,8 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* } }
-// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* } }
+// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } }
+// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } }
// { dg-options "-pthreads" { target *-*-solaris* } }
#include <vector>
Index: libstdc++-v3/testsuite/thread/pthread6.cc
===================================================================
--- libstdc++-v3/testsuite/thread/pthread6.cc (revision 126588)
+++ libstdc++-v3/testsuite/thread/pthread6.cc (working copy)
@@ -20,8 +20,8 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* } }
-// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* } }
+// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } }
+// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } }
// { dg-options "-pthreads" { target *-*-solaris* } }
#include <string>
Index: libstdc++-v3/testsuite/thread/pthread7-rope.cc
===================================================================
--- libstdc++-v3/testsuite/thread/pthread7-rope.cc (revision 126588)
+++ libstdc++-v3/testsuite/thread/pthread7-rope.cc (working copy)
@@ -18,8 +18,8 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* } }
-// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* } }
+// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } }
+// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } }
// { dg-options "-pthreads" { target *-*-solaris* } }
#include <ext/rope>
Index: libstdc++-v3/testsuite/thread/18185.cc
===================================================================
--- libstdc++-v3/testsuite/thread/18185.cc (revision 126588)
+++ libstdc++-v3/testsuite/thread/18185.cc (working copy)
@@ -1,5 +1,5 @@
//
-// Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+// Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -17,8 +17,8 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* } }
-// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* } }
+// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } }
+// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } }
// { dg-options "-pthreads" { target *-*-solaris* } }
#include <ext/new_allocator.h>
Index: libstdc++-v3/testsuite/thread/pthread1.cc
===================================================================
--- libstdc++-v3/testsuite/thread/pthread1.cc (revision 126588)
+++ libstdc++-v3/testsuite/thread/pthread1.cc (working copy)
@@ -19,8 +19,8 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* } }
-// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* } }
+// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } }
+// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } }
// { dg-options "-pthreads" { target *-*-solaris* } }
// This multi-threading C++/STL/POSIX code adheres to rules outlined here:
Index: libstdc++-v3/testsuite/thread/pthread2.cc
===================================================================
--- libstdc++-v3/testsuite/thread/pthread2.cc (revision 126588)
+++ libstdc++-v3/testsuite/thread/pthread2.cc (working copy)
@@ -20,8 +20,8 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* } }
-// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* } }
+// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } }
+// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } }
// { dg-options "-pthreads" { target *-*-solaris* } }
#include <fstream>
Index: libstdc++-v3/testsuite/thread/pthread3.cc
===================================================================
--- libstdc++-v3/testsuite/thread/pthread3.cc (revision 126588)
+++ libstdc++-v3/testsuite/thread/pthread3.cc (working copy)
@@ -20,8 +20,8 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
-// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* } }
-// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* } }
+// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } }
+// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } }
// { dg-options "-pthreads" { target *-*-solaris* } }
#include <sstream>