diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index dd0b466708cf1b13e76614a79647a69dd49d6a9f..00679719871fefdd515a3565b9e294175e786105 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,17 @@
+2000-11-21  Branko Cibej  <brankoe@xbc.nu>
+
+        * config/os/solaris/solaris2.6/bits/os_defines.h: Define
+        _XOPEN_SOURCE, _LARGEFILE64_SOURCE, __EXTENSIONS__, __off_t,
+        __off64_t and __ssize_t.
+	* config/os/solaris/solaris2.5/bits/os_defines.h: For now, use the
+	same configuration as above.
+	
 2000-11-21  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>
 
+	* libsupc++/new.h: Add using declarations for bad_alloc,
+	nothrow_t, and nothrow.
+	* include/backward/new.h: Remove duplicate file, as libsupc++ has it.
+
 	* acinclude.m4 (AC_LC_MESSAGES): Check for locale.h.
 	* aclocal.m4: Regenerate.
 	* configure: Renerate.
diff --git a/libstdc++-v3/config/os/solaris/solaris2.5/bits/os_defines.h b/libstdc++-v3/config/os/solaris/solaris2.5/bits/os_defines.h
index 61bcd200a839549ccccaa8e0ca06010f4984ba40..c947be7c6c86c80cb4c231e589f0a91e45a60b3d 100644
--- a/libstdc++-v3/config/os/solaris/solaris2.5/bits/os_defines.h
+++ b/libstdc++-v3/config/os/solaris/solaris2.5/bits/os_defines.h
@@ -1,4 +1,4 @@
-// Specific definitions for Solaris 2.5  -*- C++ -*-
+// Specific definitions for Solaris 2.6  -*- C++ -*-
 
 // Copyright (C) 2000 Free Software Foundation, Inc.
 //
@@ -31,10 +31,21 @@
 #ifndef _GLIBCPP_OS_DEFINES
 #  define _GLIBCPP_OS_DEFINES
 
+// Need these to get sane definitions, esp. of 64-bit types and typedefs.
+#define _XOPEN_SOURCE        500
+#define _LARGEFILE64_SOURCE  1
+#define __EXTENSIONS__
 
 /* System-specific #define, typedefs, corrections, etc, go here.  This
    file will come before all others. */
-
+// These are typedefs which libio assumes are already in place (because
+// they really are, under Linux).
+#define __off_t     off_t
+#define __off64_t   off64_t
+#define __ssize_t   ssize_t
+
+// Without this all the libio vtbls are offset wrongly.
+#define _G_USING_THUNKS 0
 
 #endif
 
diff --git a/libstdc++-v3/config/os/solaris/solaris2.6/bits/os_defines.h b/libstdc++-v3/config/os/solaris/solaris2.6/bits/os_defines.h
index 9913f738f45223eec8018c434f1e9716d26bf1c6..c947be7c6c86c80cb4c231e589f0a91e45a60b3d 100644
--- a/libstdc++-v3/config/os/solaris/solaris2.6/bits/os_defines.h
+++ b/libstdc++-v3/config/os/solaris/solaris2.6/bits/os_defines.h
@@ -31,10 +31,21 @@
 #ifndef _GLIBCPP_OS_DEFINES
 #  define _GLIBCPP_OS_DEFINES
 
+// Need these to get sane definitions, esp. of 64-bit types and typedefs.
+#define _XOPEN_SOURCE        500
+#define _LARGEFILE64_SOURCE  1
+#define __EXTENSIONS__
 
 /* System-specific #define, typedefs, corrections, etc, go here.  This
    file will come before all others. */
-
+// These are typedefs which libio assumes are already in place (because
+// they really are, under Linux).
+#define __off_t     off_t
+#define __off64_t   off64_t
+#define __ssize_t   ssize_t
+
+// Without this all the libio vtbls are offset wrongly.
+#define _G_USING_THUNKS 0
 
 #endif