rpms/gcc/devel .cvsignore, 1.131, 1.132 gcc41-ldbl-default-libstdc++.patch, 1.3, 1.4 gcc41-ldbl-default.patch, 1.2, 1.3 gcc41-ldbl-mangle-as-g.patch, 1.1, 1.2 gcc41-ppc32-ldbl.patch, 1.1, 1.2 gcc41.spec, 1.29, 1.30 sources, 1.133, 1.134 gcc41-gc-pthread_create.patch, 1.2, NONE

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Fri Feb 10 15:19:36 UTC 2006


Author: jakub

Update of /cvs/dist/rpms/gcc/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv11922

Modified Files:
	.cvsignore gcc41-ldbl-default-libstdc++.patch 
	gcc41-ldbl-default.patch gcc41-ldbl-mangle-as-g.patch 
	gcc41-ppc32-ldbl.patch gcc41.spec sources 
Removed Files:
	gcc41-gc-pthread_create.patch 
Log Message:
4.1.0-0.24



Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/.cvsignore,v
retrieving revision 1.131
retrieving revision 1.132
diff -u -r1.131 -r1.132
--- .cvsignore	6 Feb 2006 10:04:18 -0000	1.131
+++ .cvsignore	10 Feb 2006 15:19:31 -0000	1.132
@@ -1 +1 @@
-gcc-4.1.0-20060206.tar.bz2
+gcc-4.1.0-20060210.tar.bz2

gcc41-ldbl-default-libstdc++.patch:
 config.h.in                        |    3 +
 config/linker-map.gnu              |   79 +++++++++++++++++++++++-----
 config/locale/generic/c_locale.cc  |    9 ++-
 config/locale/gnu/c_locale.cc      |    9 ++-
 config/os/gnu-linux/ldbl-extra.ver |   19 ++++++
 configure                          |   88 ++++++++++++++++++++++++++++++-
 configure.ac                       |   19 ++++++
 include/Makefile.am                |    9 ++-
 include/Makefile.in                |    9 ++-
 include/bits/c++config             |   22 +++++++
 include/bits/locale_facets.h       |   61 +++++++++++++++++++++
 include/bits/locale_facets.tcc     |   82 +++++++++++++++++++++++++----
 include/bits/localefwd.h           |    4 +
 src/Makefile.am                    |   31 +++++++++--
 src/Makefile.in                    |   52 +++++++++++++++---
 src/compatibility-ldbl.cc          |   73 +++++++++++++++++++++++++
 src/compatibility.cc               |  104 ++++++++++++++++++++++++++++++++++++-
 src/complex_io.cc                  |   19 ++++++
 src/istream-inst.cc                |   18 ++++++
 src/limits.cc                      |   33 +++++++++++
 src/locale-inst.cc                 |   50 +++++++++++++++++
 src/locale-misc-inst.cc            |   19 ++++++
 src/locale.cc                      |   43 +++++++++++++--
 src/ostream-inst.cc                |   18 ++++++
 src/wlocale-inst.cc                |   44 +++++++++++++++
 testsuite/testsuite_abi.cc         |   11 ++-
 26 files changed, 863 insertions(+), 65 deletions(-)

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.3 -r 1.4 gcc41-ldbl-default-libstdc++.patch
Index: gcc41-ldbl-default-libstdc++.patch
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/gcc41-ldbl-default-libstdc++.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- gcc41-ldbl-default-libstdc++.patch	6 Feb 2006 10:04:21 -0000	1.3
+++ gcc41-ldbl-default-libstdc++.patch	10 Feb 2006 15:19:31 -0000	1.4
@@ -1,4 +1,4 @@
-2006-02-04  Jakub Jelinek  <jakub at redhat.com>
+2006-02-07  Jakub Jelinek  <jakub at redhat.com>
 	    Benjamin Kosnik  <bkoz at redhat.com>
 
 	* configure.ac (_GLIBCXX_LONG_DOUBLE_COMPAT): New check.
@@ -8,18 +8,12 @@
 	* configure: Rebuilt.
 	* config.h.in: Rebuilt.
 	* config/os/gnu-linux/ldbl-extra.ver: New file.
-	* src/Makefile.am (libstdc++-symbol.ver): Append instead of
-	insert in the middle if port specific symbol file requests it.
-	(ldbl_compat_sources): New variable.
-	(sources): Use it.
-	(compatibility-ldbl.lo, compatibility-ldbl.o): New rules.
-	* src/Makefile.in: Rebuilt.
 	* config/linker-map.gnu: Make sure no __float128 symbols are
 	exported.
-	* include/bits/localefwd.h: Surround std::{money,num}_{get,put}
-	with _GLIBCXX_BEGIN_LDBL_NAMESPACE and _GLIBCXX_END_LDBL_NAMESPACE.
-	(_GLIBCXX_LDBL_NAMESPACE, _GLIBCXX_BEGIN_LDBL_NAMESPACE,
+	* include/bits/c++config (_GLIBCXX_LONG_DOUBLE_COMPAT,
+	_GLIBCXX_LDBL_NAMESPACE, _GLIBCXX_BEGIN_LDBL_NAMESPACE,
 	_GLIBCXX_END_LDBL_NAMESPACE): Define.
+	* include/bits/localefwd.h: Use them to conditionally scope facets.
 	* include/bits/locale_facets.h: Surround std::{money,num}_{get,put}
 	with _GLIBCXX_BEGIN_LDBL_NAMESPACE and _GLIBCXX_END_LDBL_NAMESPACE.
 	[_GLIBCXX_LONG_DOUBLE_COMPAT] (std::money_get): Add __do_get method.
@@ -31,500 +25,380 @@
 	(std::money_get::__do_get, std::money_put::__do_put,
 	std::num_get::__do_get, std::num_put::__do_put): New
 	specializations.
+	* include/Makefile.am: Conditionally define
+	_GLIBCXX_LONG_DOUBLE_COMPAT in c++config.
+	* include/Makefile.in: Regenerate.
 	* src/locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT] (_GLIBCXX_LOC_ID,
 	_GLIBCXX_SYNC_ID): Define, use them.
 	* src/compatibility-ldbl.cc: New file.
 	* src/complex_io.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Add compatibility
 	symbols.
-	* src/istream-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
 	* src/limits.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
-	* src/locale-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
+	* src/locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
+	* src/locale-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.	
+	* src/locale-misc-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
+	* src/istream-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
 	* src/ostream-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
+	* src/locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
 	* src/wlocale-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
 	* src/compatibility.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
-	* src/locale-misc-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
 	* config/locale/generic/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]:
 	Likewise.
-	* config/locale/gnu/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
+	* config/locale/gnu/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]:
+	Likewise.
+	* src/Makefile.am (libstdc++-symbol.ver): Append instead of
+	insert in the middle if port specific symbol file requests it.
+	(ldbl_compat_sources): New variable.
+	(sources): Use it.
+	(compatibility-ldbl.lo, compatibility-ldbl.o): New rules.
+	* src/Makefile.in: Rebuilt.
+	* testsuite/testsuite_abi.cc: Recognize GLIBCXX_LDBL_3.4,
+	GLIBCXX_LDBL_3.4.7, CXXABI_LDBL_1.3.	
 
---- libstdc++-v3/include/bits/locale_facets.h.jj	2006-02-04 10:42:42.000000000 +0100
-+++ libstdc++-v3/include/bits/locale_facets.h	2006-02-04 10:44:51.000000000 +0100
-@@ -1,6 +1,6 @@
- // Locale support -*- C++ -*-
+--- libstdc++-v3/configure.ac.jj	2006-02-02 16:38:33.000000000 +0100
++++ libstdc++-v3/configure.ac	2006-02-10 14:53:36.000000000 +0100
+@@ -281,6 +281,25 @@ fi
+ # This depends on GLIBCXX CHECK_LINKER_FEATURES, but without it assumes no.
+ GLIBCXX_ENABLE_SYMVERS([yes])
  
--// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
++ac_ldbl_compat=no
++case "$target" in
++  powerpc*-*-*gnu* | \
++  sparc*-*-linux* | \
++  s390*-*-linux* | \
++  alpha*-*-linux*)
++  AC_TRY_COMPILE(, [
++#if !defined __LONG_DOUBLE_128__ || (defined(__sparc__) && defined(__arch64__))
++#error no need for long double compatibility
++#endif
++  ], [ac_ldbl_compat=yes], [ac_ldbl_compat=no])
++  if test "$ac_ldbl_compat" = yes; then
++    AC_DEFINE([_GLIBCXX_LONG_DOUBLE_COMPAT],1,
++	      [Define if compatibility should be provided for -mlong-double-64.])
++    port_specific_symbol_files="\$(top_srcdir)/config/os/gnu-linux/ldbl-extra.ver"
++  fi
++esac
++GLIBCXX_CONDITIONAL(GLIBCXX_LDBL_COMPAT, test $ac_ldbl_compat = yes)
++
+ # This depends on GLIBCXX_ENABLE_SYMVERS and GLIBCXX_IS_NATIVE.
+ GLIBCXX_CONFIGURE_TESTSUITE
+ 
+--- libstdc++-v3/src/locale.cc.jj	2006-02-02 16:38:25.000000000 +0100
++++ libstdc++-v3/src/locale.cc	2006-02-10 14:57:26.000000000 +0100
+@@ -1,4 +1,4 @@
+-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
++// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006
  // Free Software Foundation, Inc.
  //
  // This file is part of the GNU ISO C++ Library.  This library is free
-@@ -1910,6 +1910,7 @@ namespace std
-       ~numpunct_byname() { }
-     };
- 
-+_GLIBCXX_BEGIN_LDBL_NAMESPACE
-   /**
-    *  @brief  Facet for parsing number strings.
-    *
-@@ -2176,13 +2177,27 @@ namespace std
-       do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
- 	     double&) const;
+@@ -41,6 +41,21 @@ namespace __gnu_internal
+   static __glibcxx_mutex_define_initialized(locale_cache_mutex);
+ }
  
-+      // XXX GLIBCXX_ABI Deprecated
-+#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
-+      virtual iter_type
-+      __do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
-+	       double&) const;
-+#else
-       virtual iter_type
-       do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
- 	     long double&) const;
++// XXX GLIBCXX_ABI Deprecated
++#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
++# define _GLIBCXX_LOC_ID(mangled) extern std::locale::id mangled
++_GLIBCXX_LOC_ID (_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE);
++_GLIBCXX_LOC_ID (_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE);
++_GLIBCXX_LOC_ID (_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE);
++_GLIBCXX_LOC_ID (_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE);
++# ifdef _GLIBCXX_USE_WCHAR_T
++_GLIBCXX_LOC_ID (_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE);
++_GLIBCXX_LOC_ID (_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE);
++_GLIBCXX_LOC_ID (_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE);
++_GLIBCXX_LOC_ID (_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE);
++# endif
 +#endif
- 
-       virtual iter_type
-       do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
- 	     void*&) const;
 +
-+      // XXX GLIBCXX_ABI Deprecated
-+#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
-+      virtual iter_type
-+      do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
-+	     long double&) const;
-+#endif
-       //@}
-     };
- 
-@@ -2438,17 +2453,30 @@ namespace std
-       virtual iter_type
-       do_put(iter_type, ios_base&, char_type __fill, double __v) const;
- 
-+      // XXX GLIBCXX_ABI Deprecated
-+#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
-+      virtual iter_type
-+      __do_put(iter_type, ios_base&, char_type __fill, double __v) const;
-+#else
-       virtual iter_type
-       do_put(iter_type, ios_base&, char_type __fill, long double __v) const;
+ namespace std 
+ {
+   // Definitions for static const data members of locale.
+@@ -398,9 +413,29 @@ namespace std 
+   locale::id::_M_id() const
+   {
+     if (!_M_index)
+-      _M_index = 1 + __gnu_cxx::__exchange_and_add(&_S_refcount, 1);
++      {
++	// XXX GLIBCXX_ABI Deprecated
++#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
++	locale::id *f = 0;
++# define _GLIBCXX_SYNC_ID(facet, mangled) \
++	if (this == &::mangled)				\
++	  f = &facet::id
++	_GLIBCXX_SYNC_ID (num_get<char>, _ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE);
++	_GLIBCXX_SYNC_ID (num_put<char>, _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE);
++	_GLIBCXX_SYNC_ID (money_get<char>, _ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE);
++	_GLIBCXX_SYNC_ID (money_put<char>, _ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE);
++# ifdef _GLIBCXX_USE_WCHAR_T
++	_GLIBCXX_SYNC_ID (num_get<wchar_t>, _ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE);
[...1970 lines suppressed...]
++#endif
++
+   template<typename _CharT, typename _OutIter>
+     _OutIter
+     money_put<_CharT, _OutIter>::
+@@ -1726,6 +1787,7 @@ namespace std
+     { return __intl ? _M_insert<true>(__s, __io, __fill, __digits)
+ 	            : _M_insert<false>(__s, __io, __fill, __digits); }
  
-     # std::__convert_to_v
--    _ZSt14__convert_to_v*;
-+    _ZSt14__convert_to_vI[^g]*;
++_GLIBCXX_END_LDBL_NAMESPACE
  
-     # __gnu_cxx::stdio_sync_filebuf
-     _ZTVN9__gnu_cxx18stdio_sync_filebufI[cw]St11char_traitsI[cw]EEE;
-@@ -399,7 +449,8 @@ GLIBCXX_3.4 {
-     _ZTSN9__gnu_cxx13stdio_filebufI[cw]St11char_traitsI[cw]EEE;
+   // NB: Not especially useful. Without an ios_base object or some
+   // kind of locale reference, we are left clawing at the air where
+@@ -2511,12 +2573,12 @@ namespace std
+   extern template class moneypunct<char, true>;
+   extern template class moneypunct_byname<char, false>;
+   extern template class moneypunct_byname<char, true>;
+-  extern template class money_get<char>;
+-  extern template class money_put<char>;
++  extern template class _GLIBCXX_LDBL_NAMESPACE money_get<char>;
++  extern template class _GLIBCXX_LDBL_NAMESPACE money_put<char>;
+   extern template class numpunct<char>;
+   extern template class numpunct_byname<char>;
+-  extern template class num_get<char>;
+-  extern template class num_put<char>;
++  extern template class _GLIBCXX_LDBL_NAMESPACE num_get<char>;
++  extern template class _GLIBCXX_LDBL_NAMESPACE num_put<char>;
+   extern template class __timepunct<char>;
+   extern template class time_put<char>;
+   extern template class time_put_byname<char>;
+@@ -2638,12 +2700,12 @@ namespace std
+   extern template class moneypunct<wchar_t, true>;
+   extern template class moneypunct_byname<wchar_t, false>;
+   extern template class moneypunct_byname<wchar_t, true>;
+-  extern template class money_get<wchar_t>;
+-  extern template class money_put<wchar_t>;
++  extern template class _GLIBCXX_LDBL_NAMESPACE money_get<wchar_t>;
++  extern template class _GLIBCXX_LDBL_NAMESPACE money_put<wchar_t>;
+   extern template class numpunct<wchar_t>;
+   extern template class numpunct_byname<wchar_t>;
+-  extern template class num_get<wchar_t>;
+-  extern template class num_put<wchar_t>;
++  extern template class _GLIBCXX_LDBL_NAMESPACE num_get<wchar_t>;
++  extern template class _GLIBCXX_LDBL_NAMESPACE num_put<wchar_t>;
+   extern template class __timepunct<wchar_t>;
+   extern template class time_put<wchar_t>;
+   extern template class time_put_byname<wchar_t>;
+--- libstdc++-v3/include/Makefile.in.jj	2006-02-02 16:38:32.000000000 +0100
++++ libstdc++-v3/include/Makefile.in	2006-02-10 15:13:22.000000000 +0100
+@@ -1203,13 +1203,18 @@ ${host_builddir}/c++config.h: ${top_buil
+ 				${glibcxx_srcdir}/include/bits/c++config \
+ 				stamp-${host_alias} \
+ 				${toplevel_srcdir}/gcc/DATESTAMP
+-	@cat ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
++	@ldbl_compat='' ;\
++	grep "^[ 	]*#[ 	]*define[ 	][ 	]*_GLIBCXX_LONG_DOUBLE_COMPAT[ 	][ 	]*1[ 	]*$$" \
++	${CONFIG_HEADER} > /dev/null 2>&1 \
++	&& ldbl_compat='s,^#undef _GLIBCXX_LONG_DOUBLE_COMPAT$$,#define _GLIBCXX_LONG_DOUBLE_COMPAT 1,' ;\
++	sed -e "$$ldbl_compat" ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
+ 	sed -e 's/^/#define __GLIBCXX__ /' \
+-            < ${toplevel_srcdir}/gcc/DATESTAMP >> $@ ;\
++	    < ${toplevel_srcdir}/gcc/DATESTAMP >> $@ ;\
+ 	sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \
+ 	    -e 's/PACKAGE/_GLIBCXX_PACKAGE/g' \
+ 	    -e 's/VERSION/_GLIBCXX_VERSION/g' \
+ 	    -e 's/WORDS_/_GLIBCXX_WORDS_/g' \
++	    -e '/[ 	]_GLIBCXX_LONG_DOUBLE_COMPAT[ 	]/d' \
+ 	    < ${CONFIG_HEADER} >> $@ ;\
+ 	echo "#endif // _CXXCONFIG_" >>$@
  
-     # function-scope static objects requires a guard variable.
--    _ZGVNSt*;
-+    _ZGVNSt[^1]*;
-+    _ZGVNSt1[^7]*;
+--- libstdc++-v3/testsuite/testsuite_abi.cc.jj	2006-02-02 16:39:16.000000000 +0100
++++ libstdc++-v3/testsuite/testsuite_abi.cc	2006-02-10 14:57:38.000000000 +0100
+@@ -1,6 +1,6 @@
+ // -*- C++ -*-
  
-     # virtual function thunks
-     _ZThn8_NS*;
-@@ -659,9 +710,9 @@ CXXABI_1.3 {
-     _ZTVN10__cxxabiv121__vmi_class_type_infoE;
+-// Copyright (C) 2004, 2005 Free Software Foundation, Inc.
++// Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
  
-     # typeinfo structure (and some names)
--    _ZTI[a-z];
--    _ZTIP[a-z];
--    _ZTIPK[a-z];
-+    _ZTI[a-fh-z];
-+    _ZTIP[a-fh-z];
-+    _ZTIPK[a-fh-z];
-     _ZTIN10__cxxabiv117__array_type_infoE;
-     _ZTIN10__cxxabiv117__class_type_infoE;
-     _ZTIN10__cxxabiv116__enum_type_infoE;
-@@ -674,9 +725,9 @@ CXXABI_1.3 {
-     _ZTIN10__cxxabiv121__vmi_class_type_infoE;
+ // This library is free software; you can redistribute it and/or
+ // modify it under the terms of the GNU General Public License as
+@@ -186,8 +186,11 @@ check_version(symbol& test, bool added)
+       known_versions.push_back("GLIBCXX_3.4.5");
+       known_versions.push_back("GLIBCXX_3.4.6");
+       known_versions.push_back("GLIBCXX_3.4.7");
++      known_versions.push_back("GLIBCXX_LDBL_3.4");
++      known_versions.push_back("GLIBCXX_LDBL_3.4.7");
+       known_versions.push_back("CXXABI_1.3");
+       known_versions.push_back("CXXABI_1.3.1");
++      known_versions.push_back("CXXABI_LDBL_1.3");
+     }
+   compat_list::iterator begin = known_versions.begin();
+   compat_list::iterator end = known_versions.end();
+@@ -223,9 +226,7 @@ check_version(symbol& test, bool added)
+ 	  // New version labels are ok. The rest are not.
+ 	  compat_list::iterator it2 = find(begin, end, test.name);
+ 	  if (it2 != end)
+-	    {
+-	      test.version_status = symbol::compatible;
+-	    }
++	    test.version_status = symbol::compatible;
+ 	  else
+ 	    test.version_status = symbol::incompatible;
+ 	}
+@@ -369,7 +370,7 @@ compare_symbols(const char* baseline_fil
+ 	  added_names.erase(it);
+ 	}
+       else
+-	  missing_names.push_back(what);
++	missing_names.push_back(what);
+     }
  
-     # typeinfo name
--    _ZTS[a-z];
--    _ZTSP[a-z];
--    _ZTSPK[a-z];
-+    _ZTS[a-fh-z];
-+    _ZTSP[a-fh-z];
-+    _ZTSPK[a-fh-z];
-     _ZTSN10__cxxabiv117__array_type_infoE;
-     _ZTSN10__cxxabiv117__class_type_infoE;
-     _ZTSN10__cxxabiv116__enum_type_infoE;
---- libstdc++-v3/configure.jj	2006-02-04 10:42:45.000000000 +0100
-+++ libstdc++-v3/configure	2006-02-04 10:48:27.000000000 +0100
+   // Check missing names for compatibility.
+--- libstdc++-v3/configure.jj	2006-02-02 16:38:28.000000000 +0100
++++ libstdc++-v3/configure	2006-02-10 14:53:36.000000000 +0100
 @@ -309,7 +309,7 @@ ac_includes_default="\
  # include <unistd.h>
  #endif"
@@ -1535,43 +1691,3 @@
  s, at baseline_dir@,$baseline_dir,;t t
  s, at ATOMICITY_SRCDIR@,$ATOMICITY_SRCDIR,;t t
  s, at ATOMIC_WORD_SRCDIR@,$ATOMIC_WORD_SRCDIR,;t t
---- libstdc++-v3/configure.ac.jj	2006-02-04 10:42:45.000000000 +0100
-+++ libstdc++-v3/configure.ac	2006-02-04 10:44:55.000000000 +0100
-@@ -281,6 +281,25 @@ fi
- # This depends on GLIBCXX CHECK_LINKER_FEATURES, but without it assumes no.
- GLIBCXX_ENABLE_SYMVERS([yes])
- 
-+ac_ldbl_compat=no
-+case "$target" in
-+  powerpc*-*-*gnu* | \
-+  sparc*-*-linux* | \
-+  s390*-*-linux* | \
-+  alpha*-*-linux*)
-+  AC_TRY_COMPILE(, [
-+#if !defined __LONG_DOUBLE_128__ || (defined(__sparc__) && defined(__arch64__))
-+#error no need for long double compatibility
-+#endif
-+  ], [ac_ldbl_compat=yes], [ac_ldbl_compat=no])
-+  if test "$ac_ldbl_compat" = yes; then
-+    AC_DEFINE([_GLIBCXX_LONG_DOUBLE_COMPAT],1,
-+	      [Define if compatibility should be provided for -mlong-double-64.])
-+    port_specific_symbol_files="\$(top_srcdir)/config/os/gnu-linux/ldbl-extra.ver"
-+  fi
-+esac
-+GLIBCXX_CONDITIONAL(GLIBCXX_LDBL_COMPAT, test $ac_ldbl_compat = yes)
-+
- # This depends on GLIBCXX_ENABLE_SYMVERS and GLIBCXX_IS_NATIVE.
- GLIBCXX_CONFIGURE_TESTSUITE
- 
---- libstdc++-v3/config.h.in.jj	2006-02-04 10:42:45.000000000 +0100
-+++ libstdc++-v3/config.h.in	2006-02-04 10:44:55.000000000 +0100
-@@ -658,6 +658,9 @@
- /* Define to 1 if a full hosted library is built, or 0 if freestanding. */
- #undef _GLIBCXX_HOSTED
- 
-+/* Define if compatibility should be provided for -mlong-double-64. */
-+#undef _GLIBCXX_LONG_DOUBLE_COMPAT
-+
- /* Define if ptrdiff_t is int. */
- #undef _GLIBCXX_PTRDIFF_T_IS_INT
- 

gcc41-ldbl-default.patch:
 config.gcc                          |    6 ++---
 config.in                           |    6 +++++
 config/alpha/alpha.c                |    5 ++++
 config/alpha/libgcc-alpha-ldbl.ver  |   32 ++++++++++++++++++++++++++
 config/alpha/t-linux                |    1 
 config/rs6000/linux.h               |    5 ++++
 config/rs6000/linux64.h             |    5 ++++
 config/s390/s390.c                  |    5 ++++
 config/sparc/libgcc-sparc-glibc.ver |   33 +++++++++++++++++++++++++++
 config/sparc/linux.h                |   27 +++++++++++-----------
 config/sparc/linux64.h              |   41 +++++++++++++++-------------------
 config/sparc/sparc.c                |    5 ++++
 config/sparc/t-linux                |    5 ++++
 config/sparc/t-linux64              |    6 -----
 configure                           |   43 +++++++++++++++++++++++++++++++++++-
 configure.ac                        |   33 +++++++++++++++++++++++++++
 doc/install.texi                    |    8 ++++++
 17 files changed, 220 insertions(+), 46 deletions(-)

Index: gcc41-ldbl-default.patch
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/gcc41-ldbl-default.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- gcc41-ldbl-default.patch	6 Feb 2006 10:04:21 -0000	1.2
+++ gcc41-ldbl-default.patch	10 Feb 2006 15:19:31 -0000	1.3
@@ -1,9 +1,9 @@
-2006-02-05  Jakub Jelinek  <jakub at redhat.com>
+2006-02-10  Jakub Jelinek  <jakub at redhat.com>
+
+	* doc/install.texi (Options specification): Document
+	--with-long-double-128.
 
-	* config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
-	(s390x-*-linux*): Likewise.
-	* config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
-	* config/s390/t-linux: New file.
+2006-02-05  Jakub Jelinek  <jakub at redhat.com>
 
 	* config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
 	(sparc64-*-linux*): Likewise.
@@ -348,24 +348,6 @@
  	;;
  alpha*-*-gnu*)
  	target_cpu_default="MASK_GAS"
-@@ -1864,7 +1864,7 @@ rs6000-ibm-aix[56789].* | powerpc-ibm-ai
- 	;;
- s390-*-linux*)
- 	tm_file="s390/s390.h dbxelf.h elfos.h svr4.h linux.h s390/linux.h"
--	tmake_file="${tmake_file} s390/t-crtstuff"
-+	tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux"
- 	;;
- s390x-*-linux*)
- 	tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h svr4.h linux.h s390/linux.h"
-@@ -1872,7 +1872,7 @@ s390x-*-linux*)
- 	md_file=s390/s390.md
- 	extra_modes=s390/s390-modes.def
- 	out_file=s390/s390.c
--	tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux64"
-+	tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux s390/t-linux64"
- 	;;
- s390x-ibm-tpf*)
-         tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h svr4.h s390/tpf.h"
 @@ -2059,7 +2059,7 @@ sparc-*-elf*)
  sparc-*-linux*)		# SPARC's running GNU/Linux, libc6
  	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux.h"
@@ -485,19 +467,20 @@
 +# Avoid the t-linux version file.
 +SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver \
 +		 $(srcdir)/config/sparc/libgcc-sparc-glibc.ver
---- gcc/config/s390/t-linux64.jj	2006-01-28 00:42:59.000000000 +0100
-+++ gcc/config/s390/t-linux64	2006-02-05 20:51:34.000000000 +0100
-@@ -6,7 +6,3 @@ LIBGCC = stmp-multilib
- INSTALL_LIBGCC = install-multilib
+--- gcc/doc/install.texi.jj	2006-02-02 16:39:46.000000000 +0100
++++ gcc/doc/install.texi	2006-02-10 15:33:53.000000000 +0100
+@@ -1224,6 +1224,14 @@ error message.
+ All support for systems which have been obsoleted in one release of GCC
+ is removed entirely in the next major release, unless someone steps
+ forward to maintain the port.
++
++ at item --with-long-double-128
++Specify if @code{long double} type should be 128-bit by default on selected
++GNU/Linux architectures.  If using @code{--without-long-double-128},
++ at code{long double} will be by default 64-bit, the same as @code{double} type.
++When neither of these configure options are used, the default will be
++128-bit @code{long double} when built against GNU C Library 2.4 and later,
++64-bit @code{long double} otherwise.
+ @end table
  
- EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
--
--# Override t-slibgcc-elf-ver to export some libgcc symbols with
--# the symbol versions that glibc used.
--SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/s390/libgcc-glibc.ver
---- gcc/config/s390/t-linux.jj	2006-02-05 20:51:18.000000000 +0100
-+++ gcc/config/s390/t-linux	2006-02-05 20:51:25.000000000 +0100
-@@ -0,0 +1,3 @@
-+# Override t-slibgcc-elf-ver to export some libgcc symbols with
-+# the symbol versions that glibc used.
-+SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/s390/libgcc-glibc.ver
+ @subheading Cross-Compiler-Specific Options

gcc41-ldbl-mangle-as-g.patch:
 alpha/alpha.c   |   20 ++++++++++++++++++++
 alpha/linux.h   |    3 +++
 s390/linux.h    |    3 +++
 s390/s390.c     |   20 ++++++++++++++++++++
 sparc/linux.h   |    3 +++
 sparc/linux64.h |    3 +++
 sparc/sparc.c   |   24 ++++++++++++++++++++++++
 7 files changed, 76 insertions(+)

Index: gcc41-ldbl-mangle-as-g.patch
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/gcc41-ldbl-mangle-as-g.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gcc41-ldbl-mangle-as-g.patch	4 Feb 2006 12:42:09 -0000	1.1
+++ gcc41-ldbl-mangle-as-g.patch	10 Feb 2006 15:19:31 -0000	1.2
@@ -1,8 +1,3 @@
-2006-02-04  Jakub Jelinek  <jakub at redhat.com>
-
-	* config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
-	long double as "g" on linux with -mlong-double-128.
-
 2006-02-03  Aldy Hernandez  <aldyh at redhat.com>
 
 	* config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
@@ -22,24 +17,6 @@
 	* config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
 	(sparc_mangle_fundamental_type): New.
 
---- gcc/config/rs6000/rs6000.c.jj	2006-02-04 11:46:38.000000000 +0100
-+++ gcc/config/rs6000/rs6000.c	2006-02-04 11:46:59.000000000 +0100
-@@ -17353,6 +17353,15 @@ rs6000_mangle_fundamental_type (tree typ
-   if (type == pixel_type_node) return "u7__pixel";
-   if (type == bool_int_type_node) return "U6__booli";
- 
-+#ifdef POWERPC_LINUX
-+  /* On powerpc*-*-linux* where -mlong-double-64 used to be
-+     the default, mangle DFmode long double as 'e' and
-+     TFmode long double as 'g' (__float128 in Itanium ABI).  */
-+  if (TYPE_MAIN_VARIANT (type) == long_double_type_node
-+      && TARGET_LONG_DOUBLE_128)
-+    return "g";
-+#endif
-+
-   /* For all other types, use normal C++ mangling.  */
-   return NULL;
- }
 --- gcc/config/alpha/linux.h.jj	2006-02-04 10:42:41.000000000 +0100
 +++ gcc/config/alpha/linux.h	2006-02-04 12:36:09.000000000 +0100
 @@ -82,3 +82,6 @@ Boston, MA 02110-1301, USA.  */

gcc41-ppc32-ldbl.patch:
 config/fp-bit.h |    4 
 doc/invoke.texi |  317 +++++++++++++++++++++++++++++++++++++-------------------
 libgcc-std.ver  |    4 
 mklibgcc.in     |    2 
 4 files changed, 221 insertions(+), 106 deletions(-)

Index: gcc41-ppc32-ldbl.patch
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/gcc41-ppc32-ldbl.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gcc41-ppc32-ldbl.patch	28 Jan 2006 10:00:01 -0000	1.1
+++ gcc41-ppc32-ldbl.patch	10 Feb 2006 15:19:31 -0000	1.2
@@ -1,3 +1,26 @@
+2006-02-04  David Edelsohn  <edelsohn at gnu.org>
+	    Jakub Jelinek  <jakub at redhat.com>
+
+	* config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
+	IBM extended float format long double as "g" on powerpc*-linux.
+
+2006-02-01  Jakub Jelinek  <jakub at redhat.com>
+
+	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For
+	-msoft-float -mlong-double-128 only issue a warning, but don't
+	swich to DFmode long double.
+
+2006-01-28  David Edelsohn  <edelsohn at gnu.org>
+
+	* config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
+	and -mlong-double-128 are incompatible.
+	* config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
+	* config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
+	(TARGET_LIBGCC2_CFLAGS): Define.
+	* config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same.
+	(TARGET_LIBGCC2_CFLAGS): Same.
+	* config/rs6000/ppc64-fp.c: Compile for 64-bit AIX.
+
 2006-01-27  Jakub Jelinek  <jakub at redhat.com>
 
 	PR target/25864
@@ -106,9 +129,16 @@
  
  @item -mprototype
  @itemx -mno-prototype
---- gcc/config/rs6000/darwin.h.jj	2006-01-28 09:54:04.000000000 +0100
-+++ gcc/config/rs6000/darwin.h	2006-01-28 10:33:14.000000000 +0100
-@@ -313,6 +313,8 @@ do {									\
+--- gcc/config/rs6000/darwin.h	(revision 110228)
++++ gcc/config/rs6000/darwin.h	(revision 110836)
+@@ -1,5 +1,5 @@
+ /* Target definitions for PowerPC running Darwin (Mac OS X).
+-   Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
++   Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006
+    Free Software Foundation, Inc.
+    Contributed by Apple Computer Inc.
+ 
+@@ -311,6 +311,8 @@ do {									\
  /* Darwin only runs on PowerPC, so short-circuit POWER patterns.  */
  #undef  TARGET_POWER
  #define TARGET_POWER 0
@@ -117,8 +147,8 @@
  
  /* Since Darwin doesn't do TOCs, stub this out.  */
  
---- gcc/config/rs6000/libgcc-ppc-glibc.ver.jj	2006-01-28 10:33:14.000000000 +0100
-+++ gcc/config/rs6000/libgcc-ppc-glibc.ver	2006-01-28 10:33:14.000000000 +0100
+--- gcc/config/rs6000/libgcc-ppc-glibc.ver	(revision 0)
++++ gcc/config/rs6000/libgcc-ppc-glibc.ver	(revision 110836)
 @@ -0,0 +1,31 @@
 +%ifndef _SOFT_FLOAT
 +%ifndef __powerpc64__
@@ -151,9 +181,18 @@
 +  __gcc_qdiv
 +}
 +%endif
---- gcc/config/rs6000/rs6000.c.jj	2006-01-28 09:54:04.000000000 +0100
-+++ gcc/config/rs6000/rs6000.c	2006-01-28 10:33:14.000000000 +0100
-@@ -158,10 +158,13 @@ enum rs6000_nop_insertion rs6000_sched_i
+--- gcc/config/rs6000/rs6000.c	(revision 110228)
++++ gcc/config/rs6000/rs6000.c	(revision 110836)
+@@ -1,6 +1,7 @@
+ /* Subroutines used for code generation on IBM RS/6000.
+    Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+-   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
++   2000, 2001, 2002, 2003, 2004, 2005, 2006
++   Free Software Foundation, Inc.
+    Contributed by Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
+ 
+    This file is part of GCC.
+@@ -158,10 +159,13 @@ enum rs6000_nop_insertion rs6000_sched_i
  /* Support targetm.vectorize.builtin_mask_for_load.  */
  static GTY(()) tree altivec_builtin_mask_for_load;
  
@@ -169,7 +208,7 @@
  int rs6000_altivec_abi;
  
  /* Nonzero if we want SPE ABI extensions.  */
-@@ -1286,6 +1289,11 @@ rs6000_override_options (const char *def
+@@ -1286,6 +1290,11 @@ rs6000_override_options (const char *def
    if (!rs6000_explicit_options.long_double)
      rs6000_long_double_type_size = RS6000_DEFAULT_LONG_DOUBLE_SIZE;
  
@@ -181,7 +220,7 @@
    /* Set Altivec ABI as default for powerpc64 linux.  */
    if (TARGET_ELF && TARGET_64BIT)
      {
-@@ -1399,8 +1407,7 @@ rs6000_override_options (const char *def
+@@ -1399,8 +1408,7 @@ rs6000_override_options (const char *def
    if (!rs6000_explicit_options.aix_struct_ret)
      aix_struct_return = (DEFAULT_ABI != ABI_V4 || DRAFT_V4_STRUCT_RET);
  
@@ -191,7 +230,7 @@
      REAL_MODE_FORMAT (TFmode) = &ibm_extended_format;
  
    /* Allocate an alias set for register saves & restores from stack.  */
-@@ -1772,6 +1779,17 @@ rs6000_handle_option (size_t code, const
+@@ -1772,6 +1780,17 @@ rs6000_handle_option (size_t code, const
  	  warning (0, "Using old darwin ABI");
  	}
  
@@ -209,7 +248,7 @@
        else
  	{
  	  error ("unknown ABI specified: '%s'", arg);
-@@ -3885,7 +3903,7 @@ rs6000_emit_move (rtx dest, rtx source, 
+@@ -3885,7 +3904,7 @@ rs6000_emit_move (rtx dest, rtx source, 
  
    /* 128-bit constant floating-point values on Darwin should really be
       loaded as two parts.  */
@@ -218,7 +257,7 @@
        && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128
        && mode == TFmode && GET_CODE (operands[1]) == CONST_DOUBLE)
      {
-@@ -4209,7 +4227,7 @@ rs6000_return_in_memory (tree type, tree
+@@ -4209,7 +4228,7 @@ rs6000_return_in_memory (tree type, tree
        return true;
      }
  
@@ -227,7 +266,7 @@
      return true;
  
    return false;
-@@ -4596,13 +4614,15 @@ function_arg_advance (CUMULATIVE_ARGS *c
+@@ -4596,13 +4615,15 @@ function_arg_advance (CUMULATIVE_ARGS *c
    else if (DEFAULT_ABI == ABI_V4)
      {
        if (TARGET_HARD_FLOAT && TARGET_FPRS
@@ -247,7 +286,7 @@
  		cum->words += cum->words & 1;
  	      cum->words += rs6000_arg_size (mode, type);
  	    }
-@@ -5127,9 +5147,10 @@ function_arg (CUMULATIVE_ARGS *cum, enum
+@@ -5127,9 +5148,10 @@ function_arg (CUMULATIVE_ARGS *cum, enum
    else if (abi == ABI_V4)
      {
        if (TARGET_HARD_FLOAT && TARGET_FPRS
@@ -260,7 +299,7 @@
  	    return gen_rtx_REG (mode, cum->fregno);
  	  else
  	    return NULL_RTX;
-@@ -5332,7 +5353,7 @@ rs6000_pass_by_reference (CUMULATIVE_ARG
+@@ -5332,7 +5354,7 @@ rs6000_pass_by_reference (CUMULATIVE_ARG
  			  enum machine_mode mode, tree type,
  			  bool named ATTRIBUTE_UNUSED)
  {
@@ -269,7 +308,7 @@
      {
        if (TARGET_DEBUG_ARG)
  	fprintf (stderr, "function_arg_pass_by_reference: V4 long double\n");
-@@ -5783,14 +5804,16 @@ rs6000_gimplify_va_arg (tree valist, tre
+@@ -5783,14 +5805,16 @@ rs6000_gimplify_va_arg (tree valist, tre
    align = 1;
  
    if (TARGET_HARD_FLOAT && TARGET_FPRS
@@ -289,7 +328,7 @@
  	align = 8;
      }
    else
-@@ -5822,7 +5845,7 @@ rs6000_gimplify_va_arg (tree valist, tre
+@@ -5822,7 +5846,7 @@ rs6000_gimplify_va_arg (tree valist, tre
  	 As are any other 2 gpr item such as complex int due to a
  	 historical mistake.  */
        u = reg;
@@ -298,7 +337,7 @@
  	{
  	  u = build2 (BIT_AND_EXPR, TREE_TYPE (reg), reg,
  		     size_int (n_reg - 1));
-@@ -9028,33 +9051,32 @@ rs6000_init_libfuncs (void)
+@@ -9028,33 +9052,32 @@ rs6000_init_libfuncs (void)
    if (!TARGET_HARD_FLOAT)
      return;
  
@@ -355,7 +394,7 @@
    else
      {
        /* 32-bit SVR4 quad floating point routines.  */
-@@ -11089,7 +11111,7 @@ rs6000_generate_compare (enum rtx_code c
+@@ -11089,7 +11112,7 @@ rs6000_generate_compare (enum rtx_code c
  	 CLOBBERs to match cmptf_internal2 pattern.  */
        if (comp_mode == CCFPmode && TARGET_XL_COMPAT
  	  && GET_MODE (rs6000_compare_op0) == TFmode
@@ -364,24 +403,47 @@
  	  && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128)
  	emit_insn (gen_rtx_PARALLEL (VOIDmode,
  	  gen_rtvec (9,
-@@ -18873,6 +18895,7 @@ rs6000_function_value (tree valtype, tre
- 						   GP_ARG_RETURN + 3),
- 				      GEN_INT (12))));
-     }
+@@ -17331,6 +17354,14 @@ rs6000_mangle_fundamental_type (tree typ
+   if (type == pixel_type_node) return "u7__pixel";
+   if (type == bool_int_type_node) return "U6__booli";
+ 
++  /* Mangle IBM extended float long double as `g' (__float128) on
++     powerpc*-linux where long-double-64 previously was the default.  */
++  if (TYPE_MAIN_VARIANT (type) == long_double_type_node
++      && TARGET_ELF
++      && TARGET_LONG_DOUBLE_128
++      && !TARGET_IEEEQUAD)
++    return "g";
 +
-   if ((INTEGRAL_TYPE_P (valtype)
-        && TYPE_PRECISION (valtype) < BITS_PER_WORD)
-       || POINTER_TYPE_P (valtype))
---- gcc/config/rs6000/linux64.h.jj	2006-01-28 09:54:04.000000000 +0100
-+++ gcc/config/rs6000/linux64.h	2006-01-28 10:33:14.000000000 +0100
-@@ -568,3 +568,5 @@ while (0)
+   /* For all other types, use normal C++ mangling.  */
+   return NULL;
+ }
+--- gcc/config/rs6000/linux64.h	(revision 110228)
++++ gcc/config/rs6000/linux64.h	(revision 110836)
+@@ -1,6 +1,6 @@
+ /* Definitions of target machine for GNU compiler,
+    for 64 bit PowerPC linux.
+-   Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
++   Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006
+    Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+@@ -567,3 +567,5 @@ while (0)
     ppc64 glibc provides it at -0x7010(13).  */
  #define TARGET_THREAD_SSP_OFFSET	(TARGET_64BIT ? -0x7010 : -0x7008)
  #endif
 +
 +#define POWERPC_LINUX
---- gcc/config/rs6000/darwin-ldouble.c.jj	2006-01-28 09:54:04.000000000 +0100
-+++ gcc/config/rs6000/darwin-ldouble.c	2006-01-28 10:33:14.000000000 +0100
+--- gcc/config/rs6000/darwin-ldouble.c	(revision 110228)
++++ gcc/config/rs6000/darwin-ldouble.c	(revision 110836)
+@@ -1,5 +1,6 @@
+ /* 128-bit long double support routines for Darwin.
+-   Copyright (C) 1993, 2003, 2004, 2005 Free Software Foundation, Inc.
++   Copyright (C) 1993, 2003, 2004, 2005, 2006
++   Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
 @@ -48,7 +49,7 @@ Software Foundation, 51 Franklin Street,
  
     This code currently assumes big-endian.  */
@@ -401,8 +463,8 @@
  /* Provide definitions of the old symbol names to satisfy apps and
     shared libs built against an older libgcc.  To access the _xlq
     symbols an explicit version reference is needed, so these won't
---- gcc/config/rs6000/t-linux64.jj	2006-01-28 09:54:04.000000000 +0100
-+++ gcc/config/rs6000/t-linux64	2006-01-28 10:33:14.000000000 +0100
+--- gcc/config/rs6000/t-linux64	(revision 110228)
++++ gcc/config/rs6000/t-linux64	(revision 110836)
 @@ -4,9 +4,7 @@
  LIB2FUNCS_EXTRA = tramp.S $(srcdir)/config/rs6000/ppc64-fp.c \
  	$(srcdir)/config/rs6000/darwin-ldouble.c
@@ -428,8 +490,17 @@
 -	else \
 -	  sed -e '/cc1_options/{ n; s/$$/ %{!m32:-mlong-double-128}/; }' < specs > $@; \
 -	fi
---- gcc/config/rs6000/rs6000.h.jj	2006-01-28 09:54:04.000000000 +0100
-+++ gcc/config/rs6000/rs6000.h	2006-01-28 10:33:14.000000000 +0100
+--- gcc/config/rs6000/rs6000.h	(revision 110228)
++++ gcc/config/rs6000/rs6000.h	(revision 110836)
+@@ -1,6 +1,7 @@
+ /* Definitions of target machine for GNU compiler, for IBM RS/6000.
+    Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+-   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
++   2000, 2001, 2002, 2003, 2004, 2005, 2006
++   Free Software Foundation, Inc.
+    Contributed by Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
+ 
+    This file is part of GCC.
 @@ -291,6 +292,7 @@ extern const char *rs6000_traceback_name
  /* These are separate from target_flags because we've run out of bits
     there.  */
@@ -457,8 +528,8 @@
     ? 0									  \
     : GET_MODE_SIZE (FROM) != GET_MODE_SIZE (TO)				  \
     ? reg_classes_intersect_p (FLOAT_REGS, CLASS)			  \
---- gcc/config/rs6000/t-ppccomm.jj	2006-01-28 09:54:04.000000000 +0100
-+++ gcc/config/rs6000/t-ppccomm	2006-01-28 10:33:14.000000000 +0100
+--- gcc/config/rs6000/t-ppccomm	(revision 110228)
++++ gcc/config/rs6000/t-ppccomm	(revision 110836)
 @@ -1,6 +1,6 @@
  # Common support for PowerPC ELF targets (both EABI and SVR4).
  
@@ -486,19 +557,39 @@
  # Switch synonyms
  MULTILIB_MATCHES_ENDIAN	= mlittle=mlittle-endian mbig=mbig-endian
  MULTILIB_MATCHES_SYSV	= mcall-sysv=mcall-sysv-eabi mcall-sysv=mcall-sysv-noeabi mcall-sysv=mcall-linux mcall-sysv=mcall-netbsd
---- gcc/config/rs6000/ppc64-fp.c.jj	2006-01-28 09:54:04.000000000 +0100
-+++ gcc/config/rs6000/ppc64-fp.c	2006-01-28 10:33:14.000000000 +0100
-@@ -31,6 +31,7 @@ Software Foundation, 51 Franklin Street,
+--- gcc/config/rs6000/ppc64-fp.c	(revision 110228)
++++ gcc/config/rs6000/ppc64-fp.c	(revision 110836)
+@@ -2,7 +2,7 @@
+    libgcc2.c with macros expanded to force the use of specific types.
+  
+    Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+-   2000, 2001, 2002, 2003, 2004  Free Software Foundation, Inc.
++   2000, 2001, 2002, 2003, 2004, 2006  Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+@@ -30,7 +30,8 @@ along with GCC; see the file COPYING.  I
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
  02110-1301, USA.  */
  
- #if defined(__powerpc64__)
+-#if defined(__powerpc64__)
++#if defined(__powerpc64__) || defined (__64BIT__)
 +#define TMODES
  #include "config/fp-bit.h"
  
  extern DItype __fixtfdi (TFtype);
---- gcc/config/rs6000/rs6000.md.jj	2006-01-28 09:54:04.000000000 +0100
-+++ gcc/config/rs6000/rs6000.md	2006-01-28 10:33:14.000000000 +0100
-@@ -151,7 +152,7 @@
+--- gcc/config/rs6000/rs6000.md	(revision 110228)
++++ gcc/config/rs6000/rs6000.md	(revision 110836)
+@@ -1,6 +1,7 @@
+ ;; Machine description for IBM RISC System 6000 (POWER) for GNU C compiler
+ ;; Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+-;; 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
++;; 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
++;; Free Software Foundation, Inc.
+ ;; Contributed by Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
+ 
+ ;; This file is part of GCC.
+@@ -151,7 +152,7 @@ (define_mode_macro P [(SI "TARGET_32BIT"
  ; Any hardware-supported floating-point mode
  (define_mode_macro FP [(SF "TARGET_HARD_FLOAT")
    (DF "TARGET_HARD_FLOAT && (TARGET_FPRS || TARGET_E500_DOUBLE)")
@@ -507,7 +598,7 @@
     && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128")])
  
  ; Various instructions that come in SI and DI forms.
-@@ -7785,7 +7786,7 @@
+@@ -8249,7 +8250,7 @@ (define_insn "*movdf_softfloat64"
  (define_expand "movtf"
    [(set (match_operand:TF 0 "general_operand" "")
  	(match_operand:TF 1 "any_operand" ""))]
@@ -516,7 +607,7 @@
     && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
    "{ rs6000_emit_move (operands[0], operands[1], TFmode); DONE; }")
  
-@@ -7795,7 +7796,7 @@
+@@ -8259,7 +8260,7 @@ (define_expand "movtf"
  (define_insn_and_split "*movtf_internal"
    [(set (match_operand:TF 0 "nonimmediate_operand" "=o,f,f,r,Y,r")
  	(match_operand:TF 1 "input_operand"         "f,o,f,YGHF,r,r"))]
@@ -525,7 +616,7 @@
     && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128
     && (gpc_reg_operand (operands[0], TFmode)
         || gpc_reg_operand (operands[1], TFmode))"
-@@ -7809,7 +7810,7 @@
+@@ -8273,7 +8274,7 @@ (define_expand "extenddftf2"
    [(parallel [(set (match_operand:TF 0 "nonimmediate_operand" "")
  		   (float_extend:TF (match_operand:DF 1 "input_operand" "")))
  	      (use (match_dup 2))])]
@@ -534,7 +625,7 @@
     && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
  {
    operands[2] = CONST0_RTX (DFmode);
-@@ -7819,7 +7820,7 @@
+@@ -8283,7 +8284,7 @@ (define_insn_and_split "*extenddftf2_int
    [(set (match_operand:TF 0 "nonimmediate_operand" "=o,f,&f,r")
         (float_extend:TF (match_operand:DF 1 "input_operand" "fr,mf,mf,rmGHF")))
     (use (match_operand:DF 2 "zero_reg_mem_operand" "rf,m,f,n"))]
@@ -543,7 +634,7 @@
     && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
    "#"
    "&& reload_completed"
-@@ -7837,7 +7838,7 @@
+@@ -8301,7 +8302,7 @@ (define_insn_and_split "*extenddftf2_int
  (define_expand "extendsftf2"
    [(set (match_operand:TF 0 "nonimmediate_operand" "")
  	(float_extend:TF (match_operand:SF 1 "gpc_reg_operand" "")))]
@@ -552,7 +643,7 @@
     && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
  {
    rtx tmp = gen_reg_rtx (DFmode);
-@@ -7849,14 +7850,14 @@
+@@ -8313,14 +8314,14 @@ (define_expand "extendsftf2"
  (define_expand "trunctfdf2"
    [(set (match_operand:DF 0 "gpc_reg_operand" "")
  	(float_truncate:DF (match_operand:TF 1 "gpc_reg_operand" "")))]
@@ -569,7 +660,7 @@
     && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
    "@
     #
-@@ -7872,7 +7873,7 @@
+@@ -8336,7 +8337,7 @@ (define_insn_and_split "trunctfdf2_inter
  (define_insn "trunctfdf2_internal2"
    [(set (match_operand:DF 0 "gpc_reg_operand" "=f")
  	(float_truncate:DF (match_operand:TF 1 "gpc_reg_operand" "f")))]
@@ -578,7 +669,7 @@
     && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
    "fadd %0,%1,%L1"
    [(set_attr "type" "fp")])
-@@ -7881,7 +7882,7 @@
+@@ -8345,7 +8346,7 @@ (define_insn_and_split "trunctfsf2"
    [(set (match_operand:SF 0 "gpc_reg_operand" "=f")
  	(float_truncate:SF (match_operand:TF 1 "gpc_reg_operand" "f")))
     (clobber (match_scratch:DF 2 "=f"))]
@@ -587,7 +678,7 @@
     && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
    "#"
    "&& reload_completed"
-@@ -7894,7 +7895,7 @@
+@@ -8358,7 +8359,7 @@ (define_insn_and_split "trunctfsf2"
  (define_expand "floatsitf2"
    [(set (match_operand:TF 0 "gpc_reg_operand" "=f")
          (float:TF (match_operand:SI 1 "gpc_reg_operand" "r")))]
@@ -596,7 +687,7 @@
     && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
  {
    rtx tmp = gen_reg_rtx (DFmode);
-@@ -7922,7 +7923,7 @@
+@@ -8386,7 +8387,7 @@ (define_expand "fix_trunctfsi2"
  	      (clobber (match_dup 3))
  	      (clobber (match_dup 4))
  	      (clobber (match_dup 5))])]
@@ -605,7 +696,7 @@
     && (TARGET_POWER2 || TARGET_POWERPC)
     && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
  {
-@@ -7939,7 +7940,7 @@
+@@ -8403,7 +8404,7 @@ (define_insn_and_split "*fix_trunctfsi2_
     (clobber (match_operand:DF 3 "gpc_reg_operand" "=&f"))
     (clobber (match_operand:DI 4 "gpc_reg_operand" "=f"))
     (clobber (match_operand:DI 5 "memory_operand" "=o"))]
@@ -614,7 +705,7 @@
     && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
    "#"
    "&& (!no_new_pseudos || offsettable_nonstrict_memref_p (operands[5]))"
-@@ -7960,7 +7961,7 @@
+@@ -8424,7 +8425,7 @@ (define_insn_and_split "*fix_trunctfsi2_
  (define_insn "negtf2"
    [(set (match_operand:TF 0 "gpc_reg_operand" "=f")
  	(neg:TF (match_operand:TF 1 "gpc_reg_operand" "f")))]
@@ -623,7 +714,7 @@
     && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
    "*
  {
-@@ -7975,7 +7976,7 @@
+@@ -8439,7 +8440,7 @@ (define_insn "negtf2"
  (define_expand "abstf2"
    [(set (match_operand:TF 0 "gpc_reg_operand" "=f")
  	(abs:TF (match_operand:TF 1 "gpc_reg_operand" "f")))]
@@ -632,7 +723,7 @@
     && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
    "
  {
-@@ -7995,7 +7996,7 @@
+@@ -8459,7 +8460,7 @@ (define_expand "abstf2_internal"
  			   (label_ref (match_operand 2 "" ""))
  			   (pc)))
     (set (match_dup 6) (neg:DF (match_dup 6)))]
@@ -641,7 +732,7 @@
     && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
    "
  {
-@@ -10934,7 +10935,7 @@
+@@ -11398,7 +11399,7 @@ (define_insn "*cmptf_internal1"
    [(set (match_operand:CCFP 0 "cc_reg_operand" "=y")
  	(compare:CCFP (match_operand:TF 1 "gpc_reg_operand" "f")
  		      (match_operand:TF 2 "gpc_reg_operand" "f")))]
@@ -650,7 +741,7 @@
     && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
    "fcmpu %0,%1,%2\;bne %0,$+8\;fcmpu %0,%L1,%L2"
    [(set_attr "type" "fpcompare")
-@@ -10952,7 +10953,7 @@
+@@ -11416,7 +11417,7 @@ (define_insn_and_split "*cmptf_internal2
      (clobber (match_scratch:DF 8 "=f"))
      (clobber (match_scratch:DF 9 "=f"))
      (clobber (match_scratch:DF 10 "=f"))]
@@ -659,9 +750,17 @@
     && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
    "#"
    "&& reload_completed"
---- gcc/config/rs6000/aix.h.jj	2006-01-28 09:54:04.000000000 +0100
-+++ gcc/config/rs6000/aix.h	2006-01-28 10:33:14.000000000 +0100
-@@ -38,6 +38,8 @@
+--- gcc/config/rs6000/aix.h	(revision 110228)
++++ gcc/config/rs6000/aix.h	(revision 110836)
+@@ -1,6 +1,6 @@
+ /* Definitions of target machine for GNU compiler,
+    for IBM RS/6000 POWER running AIX.
+-   Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
++   Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006
+    Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+@@ -42,6 +42,8 @@
  #define TARGET_ALTIVEC 0
  #undef  TARGET_ALTIVEC_ABI
  #define TARGET_ALTIVEC_ABI 0
@@ -670,30 +769,117 @@
  
  /* The AIX linker will discard static constructors in object files before
     collect has a chance to see them, so scan the object files directly.  */
---- gcc/config/rs6000/linux.h.jj	2006-01-28 09:54:04.000000000 +0100
-+++ gcc/config/rs6000/linux.h	2006-01-28 10:33:14.000000000 +0100
+--- gcc/config/rs6000/linux.h	(revision 110228)
++++ gcc/config/rs6000/linux.h	(revision 110836)
+@@ -1,7 +1,7 @@
+ /* Definitions of target machine for GNU compiler,
+    for PowerPC machines running Linux.
+-   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+-   Free Software Foundation, Inc.
++   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
++   2004, 2005, 2006 Free Software Foundation, Inc.
+    Contributed by Michael Meissner (meissner at cygnus.com).
+ 
+    This file is part of GCC.
 @@ -118,3 +118,5 @@
  /* ppc32 glibc provides __stack_chk_guard in -0x7008(2).  */
  #define TARGET_THREAD_SSP_OFFSET	-0x7008
  #endif
 +
 +#define POWERPC_LINUX
---- gcc/config/rs6000/sysv4.h.jj	2006-01-28 09:54:04.000000000 +0100
-+++ gcc/config/rs6000/sysv4.h	2006-01-28 10:33:14.000000000 +0100
-@@ -215,6 +215,13 @@ do {									\
+--- gcc/config/rs6000/sysv4.h	(revision 110228)
++++ gcc/config/rs6000/sysv4.h	(revision 110836)
+@@ -1,6 +1,6 @@
+ /* Target definitions for GNU compiler for PowerPC running System V.4
+    Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+-   2004, 2005 Free Software Foundation, Inc.
++   2004, 2005, 2006 Free Software Foundation, Inc.
+    Contributed by Cygnus Support.
+ 
+    This file is part of GCC.
+@@ -215,6 +215,10 @@ do {									\
        error ("-msecure-plt not supported by your assembler");		\
      }									\
  									\
++  if (TARGET_SOFT_FLOAT && TARGET_LONG_DOUBLE_128			\
++      && rs6000_explicit_options.long_double)				\
++    warning (0, "-msoft-float and -mlong-double-128 not supported");	\
++									\
+   /* Treat -fPIC the same as -mrelocatable.  */				\
+   if (flag_pic > 1 && DEFAULT_ABI != ABI_AIX)				\
+     target_flags |= MASK_RELOCATABLE | MASK_MINIMAL_TOC | MASK_NO_FP_IN_TOC; \
+--- gcc/config/rs6000/aix43.h	(revision 110228)
++++ gcc/config/rs6000/aix43.h	(revision 110836)
+@@ -1,6 +1,6 @@
+ /* Definitions of target machine for GNU compiler,
+    for IBM RS/6000 POWER running AIX version 4.3.
+-   Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005
++   Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006
+    Free Software Foundation, Inc.
+    Contributed by David Edelsohn (edelsohn at gnu.org).
+ 
+@@ -43,6 +43,12 @@ do {									\
+       target_flags |= MASK_POWERPC64;					\
+       warning (0, "-maix64 requires PowerPC64 architecture remain enabled"); \
+     }									\
 +  if (TARGET_SOFT_FLOAT && TARGET_LONG_DOUBLE_128)			\
 +    {									\
 +      rs6000_long_double_type_size = 64;				\
 +      if (rs6000_explicit_options.long_double)				\
 +	warning (0, "soft-float and long-double-128 are incompatible");	\
 +    }									\
-+									\
-   /* Treat -fPIC the same as -mrelocatable.  */				\
-   if (flag_pic > 1 && DEFAULT_ABI != ABI_AIX)				\
-     target_flags |= MASK_RELOCATABLE | MASK_MINIMAL_TOC | MASK_NO_FP_IN_TOC; \
+   if (TARGET_POWERPC64 && ! TARGET_64BIT)				\
+     {									\
+       error ("-maix64 required: 64-bit computation with 32-bit addressing not yet supported"); \
+--- gcc/config/rs6000/aix52.h	(revision 110228)
++++ gcc/config/rs6000/aix52.h	(revision 110836)
+@@ -1,6 +1,6 @@
+ /* Definitions of target machine for GNU compiler,
+    for IBM RS/6000 POWER running AIX V5.2.
+-   Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
++   Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+    Contributed by David Edelsohn (edelsohn at gnu.org).
+ 
+    This file is part of GCC.
+@@ -42,6 +42,12 @@ do {									\
+       target_flags |= MASK_POWERPC64;					\
+       warning (0, "-maix64 requires PowerPC64 architecture remain enabled"); \
+     }									\
++  if (TARGET_SOFT_FLOAT && TARGET_LONG_DOUBLE_128)			\
++    {									\
++      rs6000_long_double_type_size = 64;				\
++      if (rs6000_explicit_options.long_double)				\
++	warning (0, "soft-float and long-double-128 are incompatible");	\
++    }									\
+   if (TARGET_POWERPC64 && ! TARGET_64BIT)				\
+     {									\
+       error ("-maix64 required: 64-bit computation with 32-bit addressing not yet supported"); \
+--- gcc/config/rs6000/t-aix43	(revision 110228)
++++ gcc/config/rs6000/t-aix43	(revision 110836)
+@@ -67,7 +67,9 @@ SHLIB_MAPFILES = $(srcdir)/libgcc-std.ve
+ SHLIB_NM_FLAGS = -Bpg -X32_64
+ 
+ # GCC 128-bit long double support routines.
+-LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/darwin-ldouble.c
++LIB2FUNCS_EXTRA =  $(srcdir)/config/rs6000/ppc64-fp.c \
++	$(srcdir)/config/rs6000/darwin-ldouble.c
++TARGET_LIBGCC2_CFLAGS = -mlong-double-128
+ 
+ # Either 32-bit and 64-bit objects in archives.
+ AR_FLAGS_FOR_TARGET = -X32_64
+--- gcc/config/rs6000/t-aix52	(revision 110228)
++++ gcc/config/rs6000/t-aix52	(revision 110836)
+@@ -48,7 +48,9 @@ SHLIB_MAPFILES = $(srcdir)/libgcc-std.ve
+ SHLIB_NM_FLAGS = -Bpg -X32_64
+ 
+ # GCC 128-bit long double support routines.
+-LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/darwin-ldouble.c
++LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/ppc64-fp.c \
++	$(srcdir)/config/rs6000/darwin-ldouble.c
++TARGET_LIBGCC2_CFLAGS = -mlong-double-128
+ 
+ # Either 32-bit and 64-bit objects in archives.
+ AR_FLAGS_FOR_TARGET = -X32_64
 --- gcc/config/fp-bit.h.jj	2006-01-28 09:54:06.000000000 +0100
 +++ gcc/config/fp-bit.h	2006-01-28 10:33:14.000000000 +0100
 @@ -87,7 +87,9 @@ Boston, MA 02110-1301, USA.  */


Index: gcc41.spec
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/gcc41.spec,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- gcc41.spec	6 Feb 2006 10:04:21 -0000	1.29
+++ gcc41.spec	10 Feb 2006 15:19:31 -0000	1.30
@@ -1,6 +1,6 @@
-%define DATE 20060206
+%define DATE 20060210
 %define gcc_version 4.1.0
-%define gcc_release 0.23
+%define gcc_release 0.24
 %define _unpackaged_files_terminate_build 0
 %define multilib_64_archs sparc64 ppc64 s390x x86_64
 %ifarch %{ix86} x86_64 ia64
@@ -72,6 +72,14 @@
 Requires: libgomp = %{version}-%{release}
 Obsoletes: gcc3
 Obsoletes: egcs
+%ifarch sparc
+Obsoletes: gcc-sparc32
+Obsoletes: gcc-c++-sparc32
+%endif
+%ifarch ppc
+Obsoletes: gcc-ppc32
+Obsoletes: gcc-c++-ppc32
+%endif
 Obsoletes: gcc-chill
 %if !%{build_ada}
 Obsoletes: gcc-gnat < %{version}-%{release}
@@ -92,8 +100,6 @@
 Patch3: gcc41-ia64-libunwind.patch
 Patch4: gcc41-gnuc-rh-release.patch
 Patch5: gcc41-java-nomulti.patch
-Patch6: gcc41-multi32-hack.patch
-Patch7: gcc41-gc-pthread_create.patch
 Patch8: gcc41-ada-pr18302.patch
 Patch9: gcc41-ada-tweaks.patch
 Patch10: gcc41-ia64-frame-base-loclist.patch
@@ -331,56 +337,6 @@
 %description -n libgcj-src
 The Java(tm) runtime library sources for use in Eclipse.
 
-%package sparc32
-Summary: The C compiler optimized for generating SPARC 32bit code
-Group: Development/Languages
-Requires: gcc = %{version}-%{release}, %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc.a
-Autoreq: true
-
-%description sparc32
-This package contains the GNU C compiler which only supports generating
-32bit SPARC code, but should be faster than the 32/64bit gcc package. You
-should install this package if you want to trade disk space required for
-this package for faster compilation of 32bit code.
-
-%package c++-sparc32
-Summary: The C++ compiler optimized for generating SPARC 32bit code
-Group: Development/Languages
-Requires: gcc-c++ = %{version}-%{release}, gcc-sparc32 = %{version}-%{release}
-Requires: %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libstdc++.so
-Autoreq: true
-
-%description c++-sparc32
-This package contains the GNU C++ compiler which only supports generating
-32bit SPARC code, but should be faster than the 32/64bit gcc package. You
-should install this package if you want to trade disk space required for
-this package for faster compilation of 32bit code.
-
-%package ppc32
-Summary: The C compiler optimized for generating PowerPC 32bit code
-Group: Development/Languages
-Requires: gcc = %{version}-%{release}, %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc.a
-Autoreq: true
-
-%description ppc32
-This package contains the GNU C compiler which only supports generating
-32bit PowerPC code, but should be faster than the 32/64bit gcc package. You
-should install this package if you want to trade disk space required for
-this package for faster compilation of 32bit code.
-
-%package c++-ppc32
-Summary: The C++ compiler optimized for generating PowerPC 32bit code
-Group: Development/Languages
-Requires: gcc-c++ = %{version}-%{release}, gcc-ppc32 = %{version}-%{release}
-Requires: %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libstdc++.so
-Autoreq: true
-
-%description c++-ppc32
-This package contains the GNU C++ compiler which only supports generating
-32bit PowerPC code, but should be faster than the 32/64bit gcc package. You
-should install this package if you want to trade disk space required for
-this package for faster compilation of 32bit code.
-
 %package -n cpp
 Summary: The C Preprocessor.
 Group: Development/Languages
@@ -441,10 +397,6 @@
 %patch3 -p0 -b .ia64-libunwind~
 %patch4 -p0 -b .gnuc-rh-release~
 %patch5 -p0 -b .java-nomulti~
-%ifarch ppc sparc
-%patch6 -p0 -b .multi32-hack~
-%endif
-%patch7 -p0 -b .gc-pthread_create~
 %patch8 -p0 -b .ada-pr18302~
 %patch9 -p0 -b .ada-tweaks~
 %patch10 -p0 -b .ia64-frame-base-loclist~
@@ -596,23 +548,6 @@
 # Make protoize
 make -C gcc CC="./xgcc -B ./ -O2" proto
 
-%ifarch sparc ppc
-# Build the -m32 only compiler which does not use long long for HOST_WIDE_INT
-mkdir gcc32
-cd gcc32
-OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g'`
-echo "#!/bin/sh" > gcc32
-echo "exec `cd ../gcc; pwd`/xgcc -B `cd ../gcc; pwd`/ $OPT_FLAGS "'"$@"' >> gcc32
-chmod +x gcc32
-CC=`pwd`/gcc32 CFLAGS="$OPT_FLAGS" CXXFLAGS="$OPT_FLAGS" XCFLAGS="$OPT_FLAGS" \
-  TCFLAGS="$OPT_FLAGS" ../../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
-  --enable-shared --enable-threads=posix --enable-checking=release --disable-libunwind-exceptions \
-  --with-system-zlib --enable-__cxa_atexit --enable-languages=c,c++ \
-  --host=%{_target_platform} --build=%{_target_platform} --target=%{_target_platform}
-make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" all-gcc 
-cd ..
-%endif
-
 # Make generated man pages even if Pod::Man is not new enough
 perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl
 for i in ../gcc/doc/*.texi; do
@@ -726,27 +661,11 @@
   fi
 done
 
-%ifarch sparc ppc
-# Install the sparc/ppc -m32 only compilers
-FULLPATH32=$RPM_BUILD_ROOT%{_prefix}/lib/gcc/%{_target_platform}/%{gcc_version}
-FULLEPATH32=$RPM_BUILD_ROOT%{_prefix}/libexec/gcc/%{_target_platform}/%{gcc_version}
-mkdir -p $FULLPATH32 $FULLEPATH32
-ln -sf %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include \
-  $FULLPATH32/
-install -m 755 gcc32/gcc/cc1 $FULLEPATH32/
-install -m 755 gcc32/gcc/cc1plus $FULLEPATH32/
-ln -f $RPM_BUILD_ROOT%{_prefix}/bin/%{gcc_target_platform}-gcc \
-  $RPM_BUILD_ROOT%{_prefix}/bin/%{_target_platform}-gcc
-%endif
-%ifarch sparc ppc
-cp -al $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform} \
-  $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_version}/%{_target_platform}
-%endif
-%ifarch sparc64
+%ifarch sparc sparc64
 ln -f $RPM_BUILD_ROOT%{_prefix}/bin/%{gcc_target_platform}-gcc \
   $RPM_BUILD_ROOT%{_prefix}/bin/sparc-%{_vendor}-%{_target_os}-gcc
 %endif
-%ifarch ppc64
+%ifarch ppc ppc64
 ln -f $RPM_BUILD_ROOT%{_prefix}/bin/%{gcc_target_platform}-gcc \
   $RPM_BUILD_ROOT%{_prefix}/bin/ppc-%{_vendor}-%{_target_os}-gcc
 %endif
@@ -1508,47 +1427,17 @@
 %endif
 %doc rpm.doc/changelogs/libmudflap/ChangeLog*
 
-%ifarch sparc
-%files sparc32
-%defattr(-,root,root)
-%dir %{_prefix}/lib/gcc
-%dir %{_prefix}/lib/gcc/%{_target_platform}
-%dir %{_prefix}/lib/gcc/%{_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{_target_platform}
-%dir %{_prefix}/libexec/gcc/%{_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{_target_platform}/%{gcc_version}/cc1
-%{_prefix}/lib/gcc/%{_target_platform}/%{gcc_version}/include
-
-%files c++-sparc32
-%defattr(-,root,root)
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{_target_platform}
-%dir %{_prefix}/libexec/gcc/%{_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{_target_platform}/%{gcc_version}/cc1plus
-%endif
-
-%ifarch ppc
-%files ppc32
-%defattr(-,root,root)
-%dir %{_prefix}/lib/gcc
-%dir %{_prefix}/lib/gcc/%{_target_platform}
-%dir %{_prefix}/lib/gcc/%{_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{_target_platform}
-%dir %{_prefix}/libexec/gcc/%{_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{_target_platform}/%{gcc_version}/cc1
-%{_prefix}/lib/gcc/%{_target_platform}/%{gcc_version}/include
-
-%files c++-ppc32
-%defattr(-,root,root)
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{_target_platform}
-%dir %{_prefix}/libexec/gcc/%{_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{_target_platform}/%{gcc_version}/cc1plus
-%endif
-
 %changelog
+* Fri Feb 10 2006 Jakub Jelinek <jakub at redhat.com> 4.1.0-0.24
+- update from gcc-4_1-branch (-r110632:110831)
+  - PRs tree-opt/26180, c++/26070, c++/26071, fortran/25577, java/26192,
+	libfortran/23815, libstdc++/26127, target/23359, target/26109,
+	tree-opt/25251
+- remove gcc-ppc32, gcc-c++-ppc32, gcc-sparc32 and gcc-c++-sparc32
+  subpackages, they do more harm than good.  Particularly this time
+  gcc*ppc32 and gcc*sparc32 defaulted to DFmode long double rather
+  than TFmode long double
+
 * Mon Feb  6 2006 Jakub Jelinek <jakub at redhat.com> 4.1.0-0.23
 - update from gcc-4_1-branch (-r110582:110632)
   - PRs classpath/24618, classpath/25141, classpath/25727, fortran/25046,


Index: sources
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/sources,v
retrieving revision 1.133
retrieving revision 1.134
diff -u -r1.133 -r1.134
--- sources	6 Feb 2006 10:04:21 -0000	1.133
+++ sources	10 Feb 2006 15:19:31 -0000	1.134
@@ -1 +1 @@
-2411c297b2de7b306228701906031c10  gcc-4.1.0-20060206.tar.bz2
+36ce392e2b0466ebd1960456561bac5b  gcc-4.1.0-20060210.tar.bz2


--- gcc41-gc-pthread_create.patch DELETED ---




More information about the fedora-cvs-commits mailing list