about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog15
-rw-r--r--iconvdata/Makefile8
-rw-r--r--iconvdata/gconv-modules8
-rw-r--r--iconvdata/georgian-academy.c29
-rw-r--r--iconvdata/georgian-ps.c29
-rwxr-xr-xiconvdata/tst-tables.sh2
-rw-r--r--libio/genops.c18
-rw-r--r--locale/programs/ld-collate.c43
-rw-r--r--localedata/ChangeLog6
-rw-r--r--localedata/SUPPORTED1
-rw-r--r--localedata/charmaps/GEORGIAN-ACADEMY267
-rw-r--r--localedata/charmaps/GEORGIAN-PS267
-rw-r--r--localedata/locales/ka_GE5
-rw-r--r--malloc/set-freeres.c14
14 files changed, 686 insertions, 26 deletions
diff --git a/ChangeLog b/ChangeLog
index 0f24b15997..923c79caa1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2001-08-04  Ulrich Drepper  <drepper@redhat.com>
+
+	* libio/genops.c (_IO_unbuffer_write): Force streams in narrow
+	orientation so that conversion modules aren't used anymore.
+	* malloc/set-freeres.c: Call _IO_cleanup before running subfreeres
+	functions to avoid using wide streams afterwards.
+
+	* iconvdata/Makefile: Add rules to build GEORGIAN-PS and
+	GEORGIAN-ACADEMY.
+	* iconvdata/georgian-ps.c: New file.
+	* iconvdata/georgian-academy.c: New file.
+	* iconvdata/gconv-modules: Add entries for GEORGIAN-PS and
+	GEORGIAN-ACADEMY.
+	* iconvdata/tst-tables.sh: Add GEORGIAN-PS and GEORGIAN-ACADEMY.
+
 2001-08-03  Ulrich Drepper  <drepper@redhat.com>
 
 	* locale/programs/ld-collate (insert_value): If symbol in order
diff --git a/iconvdata/Makefile b/iconvdata/Makefile
index 53aeb2426c..419ea3c583 100644
--- a/iconvdata/Makefile
+++ b/iconvdata/Makefile
@@ -47,7 +47,8 @@ modules	:= ISO8859-1 ISO8859-2 ISO8859-3 ISO8859-4 ISO8859-5		 \
 	   ISO_5428 ISO_10367-BOX MAC-IS MAC-UK NATS-DANO NATS-SEFI	 \
 	   SAMI-WS2 ISO-IR-197 TIS-620 KOI8-U GBK ISIRI-3342 GBGBK	 \
 	   ISO-2022-CN libISOIR165 UTF-16 UNICODE UTF-32 UTF-7 BIG5HKSCS \
-	   GB18030 ISO-2022-CN-EXT VISCII GBBIG5 CP10007 KOI8-T
+	   GB18030 ISO-2022-CN-EXT VISCII GBBIG5 CP10007 KOI8-T		 \
+	   GEORGIAN-PS GEORGIAN-ACADEMY
 
 modules.so := $(addsuffix .so, $(modules))
 
@@ -138,7 +139,7 @@ distribute := gconv-modules extra-module.mk gap.awk gaptab.awk		    \
 	      iso8859-16.c utf-16.c unicode.c utf-32.c utf-7.c big5hkscs.c  \
 	      iso-ir-165.c iso-ir-165.h gb18030.c iso-2022-cn-ext.c	    \
 	      ibm932.c ibm932.h ibm943.c ibm943.h gbbig5.c cp10007.c	    \
-	      koi8-t.c
+	      koi8-t.c georgian-ps.c georgian-academy.c
 
 # We build the transformation modules only when we build shared libs.
 ifeq (yes,$(build-shared))
@@ -177,7 +178,8 @@ gen-8bit-gap-modules := koi8-r latin-greek latin-greek-1 ibm256 ibm273	   \
 			inis-cyrillic iso_2033 iso_5427 iso_5427-ext	   \
 			iso_5428 iso_10367-box mac-is nats-dano nats-sefi  \
 			iso8859-13 iso8859-14 iso8859-15 mac-uk sami-ws2   \
-			iso-ir-197 tis-620 koi8-u ibm874 cp10007 koi8-t
+			iso-ir-197 tis-620 koi8-u ibm874 cp10007 koi8-t	   \
+			georgian-ps georgian-academy
 
 gen-special-modules := iso8859-7jp
 
diff --git a/iconvdata/gconv-modules b/iconvdata/gconv-modules
index 54692de455..1eacc1b51e 100644
--- a/iconvdata/gconv-modules
+++ b/iconvdata/gconv-modules
@@ -1434,3 +1434,11 @@ module	INTERNAL		VISCII//		VISCII		1
 #	from			to			module		cost
 module	KOI8-T//		INTERNAL		KOI8-T		1
 module	INTERNAL		KOI8-T//		KOI8-T		1
+
+#	from			to			module		cost
+module	GEORGIAN-PS//		INTERNAL		GEORGIAN-PS	1
+module	INTERNAL		GEORGIAN-PS//		GEORGIAN-PS	1
+
+#	from			to			module		cost
+module	GEORGIAN-ACADEMY//	INTERNAL		GEORGIAN-ACADEMY 1
+module	INTERNAL		GEORGIAN-ACADEMY//	GEORGIAN-ACADEMY 1
diff --git a/iconvdata/georgian-academy.c b/iconvdata/georgian-academy.c
new file mode 100644
index 0000000000..eb0e6364c2
--- /dev/null
+++ b/iconvdata/georgian-academy.c
@@ -0,0 +1,29 @@
+/* Conversion from and to GEORGIAN-ACADEMY.
+   Copyright (C) 2001 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 2001.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <stdint.h>
+
+/* Specify the conversion table.  */
+#define TABLES <georgian-academy.h>
+
+#define CHARSET_NAME	"GEORGIAN-ACADEMY//"
+#define HAS_HOLES	0	/* All 256 character are defined.  */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/georgian-ps.c b/iconvdata/georgian-ps.c
new file mode 100644
index 0000000000..355eed3017
--- /dev/null
+++ b/iconvdata/georgian-ps.c
@@ -0,0 +1,29 @@
+/* Conversion from and to GEORGIAN-PS.
+   Copyright (C) 2001 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 2001.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <stdint.h>
+
+/* Specify the conversion table.  */
+#define TABLES <georgian-ps.h>
+
+#define CHARSET_NAME	"GEORGIAN-PS//"
+#define HAS_HOLES	0	/* All 256 character are defined.  */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/tst-tables.sh b/iconvdata/tst-tables.sh
index f403d17010..fea3914df3 100755
--- a/iconvdata/tst-tables.sh
+++ b/iconvdata/tst-tables.sh
@@ -183,6 +183,8 @@ cat <<EOF |
   TIS-620
   KOI8-U
   VISCII
+  GEORGIAN-PS
+  GEORGIAN-ACADEMY
   #ISIRI-3342                         This charset concept is completely broken
   #
   # Multibyte encodings come here
diff --git a/libio/genops.c b/libio/genops.c
index ad6c7f7ea4..f68912ceb4 100644
--- a/libio/genops.c
+++ b/libio/genops.c
@@ -881,12 +881,18 @@ _IO_unbuffer_write ()
 {
   struct _IO_FILE *fp;
   for (fp = (_IO_FILE *) _IO_list_all; fp; fp = fp->_chain)
-    if (! (fp->_flags & _IO_UNBUFFERED)
-	&& (! (fp->_flags & _IO_NO_WRITES)
-	    || (fp->_flags & _IO_IS_APPENDING))
-	/* Iff stream is un-orientated, it wasn't used. */
-	&& fp->_mode != 0)
-      _IO_SETBUF (fp, NULL, 0);
+    {
+      if (! (fp->_flags & _IO_UNBUFFERED)
+	  && (! (fp->_flags & _IO_NO_WRITES)
+	      || (fp->_flags & _IO_IS_APPENDING))
+	  /* Iff stream is un-orientated, it wasn't used. */
+	  && fp->_mode != 0)
+	_IO_SETBUF (fp, NULL, 0);
+
+      /* Make sure that never again the wide char functions can be
+	 used.  */
+      fp->_mode = -1;
+    }
 }
 
 int
diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c
index e9e92e2bf4..d19e3bba59 100644
--- a/locale/programs/ld-collate.c
+++ b/locale/programs/ld-collate.c
@@ -939,24 +939,37 @@ insert_value (struct linereader *ldfile, const char *symstr, size_t symlen,
     {
       /* It's no character, so look through the collation elements and
 	 symbol list.  */
-      void *result;
-
-      if (find_entry (&collate->sym_table, symstr, symlen, &result) == 0)
+      if (find_entry (&collate->elem_table, symstr, symlen,
+			   (void **) &elem) != 0)
 	{
-	  /* It's a collation symbol.  */
-	  struct symbol_t *sym = (struct symbol_t *) result;
-	  elem = sym->order;
+	  void *result;
+	  struct symbol_t *sym = NULL;
+
+	  /* It's also collation element.  Therefore it's either a
+	     collating symbol or it's a character which is not
+	     supported by the character set.  In the later case we
+	     simply create a dummy entry.  */
+	  if (find_entry (&collate->sym_table, symstr, symlen, &result) == 0)
+	    {
+	      /* It's a collation symbol.  */
+	      sym = (struct symbol_t *) result;
+
+	      elem = sym->order;
+	    }
 
 	  if (elem == NULL)
-	    elem = sym->order = new_element (collate, NULL, 0, NULL,
-					     sym->name, strlen (sym->name), 0);
-	}
-      else if (find_entry (&collate->elem_table, symstr, symlen,
-			   (void **) &elem) != 0)
-	{
-	  /* It's also no collation element.  Therefore ignore it.  */
-	  lr_ignore_rest (ldfile, 0);
-	  return 1;
+	    {
+	      elem = new_element (collate, NULL, 0, NULL, symstr, symlen, 0);
+
+	      if (sym != NULL)
+		sym->order = elem;
+	      else
+		/* Enter a fake element in the sequence table.  This
+		   won't cause anything in the output since there is
+		   no multibyte or wide character associated with
+		   it.  */
+		insert_entry (&collate->seq_table, symstr, symlen, elem);
+	    }
 	}
     }
   else
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index df3441a7c6..ce1734d0a6 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,3 +1,9 @@
+2001-08-04  Ulrich Drepper  <drepper@redhat.com>
+
+	* charmaps/GEORGIAN-PS: New file.
+	* charmaps/GEORGIAN-ACADEMY: New file.
+	* SUPPORTED: Add ka_GE/GEORGIAN-PS.
+
 2001-08-03  Ulrich Drepper  <drepper@redhat.com>
 
 	* Makefile: Add rules to build and run tst-mbswcs6.
diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
index a97b54d57d..296de2ee2a 100644
--- a/localedata/SUPPORTED
+++ b/localedata/SUPPORTED
@@ -107,6 +107,7 @@ it_IT/ISO-8859-1 \
 it_IT@euro/ISO-8859-15 \
 iw_IL/ISO-8859-8 \
 ja_JP.EUC-JP/EUC-JP \
+ka_GE/GEORGIAN-PS \
 kl_GL/ISO-8859-1 \
 ko_KR.EUC-KR/EUC-KR \
 ko_KR.UTF-8/UTF-8 \
diff --git a/localedata/charmaps/GEORGIAN-ACADEMY b/localedata/charmaps/GEORGIAN-ACADEMY
new file mode 100644
index 0000000000..9dc1bc9e78
--- /dev/null
+++ b/localedata/charmaps/GEORGIAN-ACADEMY
@@ -0,0 +1,267 @@
+<code_set_name> GEORGIAN-ACADEMY
+<comment_char> %
+<escape_char> /
+
+CHARMAP
+<U0000>     /x00         NULL (NUL)
+<U0001>     /x01         START OF HEADING (SOH)
+<U0002>     /x02         START OF TEXT (STX)
+<U0003>     /x03         END OF TEXT (ETX)
+<U0004>     /x04         END OF TRANSMISSION (EOT)
+<U0005>     /x05         ENQUIRY (ENQ)
+<U0006>     /x06         ACKNOWLEDGE (ACK)
+<U0007>     /x07         BELL (BEL)
+<U0008>     /x08         BACKSPACE (BS)
+<U0009>     /x09         CHARACTER TABULATION (HT)
+<U000A>     /x0a         LINE FEED (LF)
+<U000B>     /x0b         LINE TABULATION (VT)
+<U000C>     /x0c         FORM FEED (FF)
+<U000D>     /x0d         CARRIAGE RETURN (CR)
+<U000E>     /x0e         SHIFT OUT (SO)
+<U000F>     /x0f         SHIFT IN (SI)
+<U0010>     /x10         DATALINK ESCAPE (DLE)
+<U0011>     /x11         DEVICE CONTROL ONE (DC1)
+<U0012>     /x12         DEVICE CONTROL TWO (DC2)
+<U0013>     /x13         DEVICE CONTROL THREE (DC3)
+<U0014>     /x14         DEVICE CONTROL FOUR (DC4)
+<U0015>     /x15         NEGATIVE ACKNOWLEDGE (NAK)
+<U0016>     /x16         SYNCHRONOUS IDLE (SYN)
+<U0017>     /x17         END OF TRANSMISSION BLOCK (ETB)
+<U0018>     /x18         CANCEL (CAN)
+<U0019>     /x19         END OF MEDIUM (EM)
+<U001A>     /x1a         SUBSTITUTE (SUB)
+<U001B>     /x1b         ESCAPE (ESC)
+<U001C>     /x1c         FILE SEPARATOR (IS4)
+<U001D>     /x1d         GROUP SEPARATOR (IS3)
+<U001E>     /x1e         RECORD SEPARATOR (IS2)
+<U001F>     /x1f         UNIT SEPARATOR (IS1)
+<U0020>     /x20         SPACE
+<U0021>     /x21         EXCLAMATION MARK
+<U0022>     /x22         QUOTATION MARK
+<U0023>     /x23         NUMBER SIGN
+<U0024>     /x24         DOLLAR SIGN
+<U0025>     /x25         PERCENT SIGN
+<U0026>     /x26         AMPERSAND
+<U0027>     /x27         APOSTROPHE
+<U0028>     /x28         LEFT PARENTHESIS
+<U0029>     /x29         RIGHT PARENTHESIS
+<U002A>     /x2a         ASTERISK
+<U002B>     /x2b         PLUS SIGN
+<U002C>     /x2c         COMMA
+<U002D>     /x2d         HYPHEN-MINUS
+<U002E>     /x2e         FULL STOP
+<U002F>     /x2f         SOLIDUS
+<U0030>     /x30         DIGIT ZERO
+<U0031>     /x31         DIGIT ONE
+<U0032>     /x32         DIGIT TWO
+<U0033>     /x33         DIGIT THREE
+<U0034>     /x34         DIGIT FOUR
+<U0035>     /x35         DIGIT FIVE
+<U0036>     /x36         DIGIT SIX
+<U0037>     /x37         DIGIT SEVEN
+<U0038>     /x38         DIGIT EIGHT
+<U0039>     /x39         DIGIT NINE
+<U003A>     /x3a         COLON
+<U003B>     /x3b         SEMICOLON
+<U003C>     /x3c         LESS-THAN SIGN
+<U003D>     /x3d         EQUALS SIGN
+<U003E>     /x3e         GREATER-THAN SIGN
+<U003F>     /x3f         QUESTION MARK
+<U0040>     /x40         COMMERCIAL AT
+<U0041>     /x41         LATIN CAPITAL LETTER A
+<U0042>     /x42         LATIN CAPITAL LETTER B
+<U0043>     /x43         LATIN CAPITAL LETTER C
+<U0044>     /x44         LATIN CAPITAL LETTER D
+<U0045>     /x45         LATIN CAPITAL LETTER E
+<U0046>     /x46         LATIN CAPITAL LETTER F
+<U0047>     /x47         LATIN CAPITAL LETTER G
+<U0048>     /x48         LATIN CAPITAL LETTER H
+<U0049>     /x49         LATIN CAPITAL LETTER I
+<U004A>     /x4a         LATIN CAPITAL LETTER J
+<U004B>     /x4b         LATIN CAPITAL LETTER K
+<U004C>     /x4c         LATIN CAPITAL LETTER L
+<U004D>     /x4d         LATIN CAPITAL LETTER M
+<U004E>     /x4e         LATIN CAPITAL LETTER N
+<U004F>     /x4f         LATIN CAPITAL LETTER O
+<U0050>     /x50         LATIN CAPITAL LETTER P
+<U0051>     /x51         LATIN CAPITAL LETTER Q
+<U0052>     /x52         LATIN CAPITAL LETTER R
+<U0053>     /x53         LATIN CAPITAL LETTER S
+<U0054>     /x54         LATIN CAPITAL LETTER T
+<U0055>     /x55         LATIN CAPITAL LETTER U
+<U0056>     /x56         LATIN CAPITAL LETTER V
+<U0057>     /x57         LATIN CAPITAL LETTER W
+<U0058>     /x58         LATIN CAPITAL LETTER X
+<U0059>     /x59         LATIN CAPITAL LETTER Y
+<U005A>     /x5a         LATIN CAPITAL LETTER Z
+<U005B>     /x5b         LEFT SQUARE BRACKET
+<U005C>     /x5c         REVERSE SOLIDUS
+<U005D>     /x5d         RIGHT SQUARE BRACKET
+<U005E>     /x5e         CIRCUMFLEX ACCENT
+<U005F>     /x5f         LOW LINE
+<U0060>     /x60         GRAVE ACCENT
+<U0061>     /x61         LATIN SMALL LETTER A
+<U0062>     /x62         LATIN SMALL LETTER B
+<U0063>     /x63         LATIN SMALL LETTER C
+<U0064>     /x64         LATIN SMALL LETTER D
+<U0065>     /x65         LATIN SMALL LETTER E
+<U0066>     /x66         LATIN SMALL LETTER F
+<U0067>     /x67         LATIN SMALL LETTER G
+<U0068>     /x68         LATIN SMALL LETTER H
+<U0069>     /x69         LATIN SMALL LETTER I
+<U006A>     /x6a         LATIN SMALL LETTER J
+<U006B>     /x6b         LATIN SMALL LETTER K
+<U006C>     /x6c         LATIN SMALL LETTER L
+<U006D>     /x6d         LATIN SMALL LETTER M
+<U006E>     /x6e         LATIN SMALL LETTER N
+<U006F>     /x6f         LATIN SMALL LETTER O
+<U0070>     /x70         LATIN SMALL LETTER P
+<U0071>     /x71         LATIN SMALL LETTER Q
+<U0072>     /x72         LATIN SMALL LETTER R
+<U0073>     /x73         LATIN SMALL LETTER S
+<U0074>     /x74         LATIN SMALL LETTER T
+<U0075>     /x75         LATIN SMALL LETTER U
+<U0076>     /x76         LATIN SMALL LETTER V
+<U0077>     /x77         LATIN SMALL LETTER W
+<U0078>     /x78         LATIN SMALL LETTER X
+<U0079>     /x79         LATIN SMALL LETTER Y
+<U007A>     /x7a         LATIN SMALL LETTER Z
+<U007B>     /x7b         LEFT CURLY BRACKET
+<U007C>     /x7c         VERTICAL LINE
+<U007D>     /x7d         RIGHT CURLY BRACKET
+<U007E>     /x7e         TILDE
+<U007F>     /x7f         DELETE (DEL)
+<U0080>     /x80         PADDING CHARACTER (PAD)
+<U0081>     /x81         HIGH OCTET PRESET (HOP)
+<U201A>     /x82         SINGLE LOW-9 QUOTATION MARK
+<U0192>     /x83         LATIN SMALL LETTER F WITH HOOK
+<U201E>     /x84         DOUBLE LOW-9 QUOTATION MARK
+<U2026>     /x85         HORIZONTAL ELLIPSIS
+<U2020>     /x86         DAGGER
+<U2021>     /x87         DOUBLE DAGGER
+<U02C6>     /x88         MODIFIER LETTER CIRCUMFLEX ACCENT
+<U2030>     /x89         PER MILLE SIGN
+<U0160>     /x8a         LATIN CAPITAL LETTER S WITH CARON
+<U2039>     /x8b         SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+<U0152>     /x8c         LATIN CAPITAL LIGATURE OE
+<U008D>     /x8d         REVERSE LINE FEED (RI)
+<U008E>     /x8e         SINGLE-SHIFT TWO (SS2)
+<U008F>     /x8f         SINGLE-SHIFT THREE (SS3)
+<U0090>     /x90         DEVICE CONTROL STRING (DCS)
+<U2018>     /x91         LEFT SINGLE QUOTATION MARK
+<U2019>     /x92         RIGHT SINGLE QUOTATION MARK
+<U201C>     /x93         LEFT DOUBLE QUOTATION MARK
+<U201D>     /x94         RIGHT DOUBLE QUOTATION MARK
+<U2022>     /x95         BULLET
+<U2013>     /x96         EN DASH
+<U2014>     /x97         EM DASH
+<U02DC>     /x98         SMALL TILDE
+<U2122>     /x99         TRADE MARK SIGN
+<U0161>     /x9a         LATIN SMALL LETTER S WITH CARON
+<U203A>     /x9b         SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+<U0153>     /x9c         LATIN SMALL LIGATURE OE
+<U009D>     /x9d         OPERATING SYSTEM COMMAND (OSC)
+<U009E>     /x9e         PRIVACY MESSAGE (PM)
+<U0178>     /x9f         LATIN CAPITAL LETTER Y WITH DIAERESIS
+<U00A0>     /xa0         NO-BREAK SPACE
+<U00A1>     /xa1         INVERTED EXCLAMATION MARK
+<U00A2>     /xa2         CENT SIGN
+<U00A3>     /xa3         POUND SIGN
+<U00A4>     /xa4         CURRENCY SIGN
+<U00A5>     /xa5         YEN SIGN
+<U00A6>     /xa6         BROKEN BAR
+<U00A7>     /xa7         SECTION SIGN
+<U00A8>     /xa8         DIAERESIS
+<U00A9>     /xa9         COPYRIGHT SIGN
+<U00AA>     /xaa         FEMININE ORDINAL INDICATOR
+<U00AB>     /xab         LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+<U00AC>     /xac         NOT SIGN
+<U00AD>     /xad         SOFT HYPHEN
+<U00AE>     /xae         REGISTERED SIGN
+<U00AF>     /xaf         MACRON
+<U00B0>     /xb0         DEGREE SIGN
+<U00B1>     /xb1         PLUS-MINUS SIGN
+<U00B2>     /xb2         SUPERSCRIPT TWO
+<U00B3>     /xb3         SUPERSCRIPT THREE
+<U00B4>     /xb4         ACUTE ACCENT
+<U00B5>     /xb5         MICRO SIGN
+<U00B6>     /xb6         PILCROW SIGN
+<U00B7>     /xb7         MIDDLE DOT
+<U00B8>     /xb8         CEDILLA
+<U00B9>     /xb9         SUPERSCRIPT ONE
+<U00BA>     /xba         MASCULINE ORDINAL INDICATOR
+<U00BB>     /xbb         RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+<U00BC>     /xbc         VULGAR FRACTION ONE QUARTER
+<U00BD>     /xbd         VULGAR FRACTION ONE HALF
+<U00BE>     /xbe         VULGAR FRACTION THREE QUARTERS
+<U00BF>     /xbf         INVERTED QUESTION MARK
+<U10D0>     /xc0         GEORGIAN LETTER AN
+<U10D1>     /xc1         GEORGIAN LETTER BAN
+<U10D2>     /xc2         GEORGIAN LETTER GAN
+<U10D3>     /xc3         GEORGIAN LETTER DON
+<U10D4>     /xc4         GEORGIAN LETTER EN
+<U10D5>     /xc5         GEORGIAN LETTER VIN
+<U10D6>     /xc6         GEORGIAN LETTER ZEN
+<U10D7>     /xc7         GEORGIAN LETTER TAN
+<U10D8>     /xc8         GEORGIAN LETTER IN
+<U10D9>     /xc9         GEORGIAN LETTER KAN
+<U10DA>     /xca         GEORGIAN LETTER LAS
+<U10DB>     /xcb         GEORGIAN LETTER MAN
+<U10DC>     /xcc         GEORGIAN LETTER NAR
+<U10DD>     /xcd         GEORGIAN LETTER ON
+<U10DE>     /xce         GEORGIAN LETTER PAR
+<U10DF>     /xcf         GEORGIAN LETTER ZHAR
+<U10E0>     /xd0         GEORGIAN LETTER RAE
+<U10E1>     /xd1         GEORGIAN LETTER SAN
+<U10E2>     /xd2         GEORGIAN LETTER TAR
+<U10E3>     /xd3         GEORGIAN LETTER UN
+<U10E4>     /xd4         GEORGIAN LETTER PHAR
+<U10E5>     /xd5         GEORGIAN LETTER KHAR
+<U10E6>     /xd6         GEORGIAN LETTER GHAN
+<U10E7>     /xd7         GEORGIAN LETTER QAR
+<U10E8>     /xd8         GEORGIAN LETTER SHIN
+<U10E9>     /xd9         GEORGIAN LETTER CHIN
+<U10EA>     /xda         GEORGIAN LETTER CAN
+<U10EB>     /xdb         GEORGIAN LETTER JIL
+<U10EC>     /xdc         GEORGIAN LETTER CIL
+<U10ED>     /xdd         GEORGIAN LETTER CHAR
+<U10EE>     /xde         GEORGIAN LETTER XAN
+<U10EF>     /xdf         GEORGIAN LETTER JHAN
+<U10F0>     /xe0         GEORGIAN LETTER HAE
+<U10F1>     /xe1         GEORGIAN LETTER HE
+<U10F2>     /xe2         GEORGIAN LETTER HIE
+<U10F3>     /xe3         GEORGIAN LETTER WE
+<U10F4>     /xe4         GEORGIAN LETTER HAR
+<U10F5>     /xe5         GEORGIAN LETTER HOE
+<U10F6>     /xe6         GEORGIAN LETTER FI
+<U00E7>     /xe7         LATIN SMALL LETTER C WITH CEDILLA
+<U00E8>     /xe8         LATIN SMALL LETTER E WITH GRAVE
+<U00E9>     /xe9         LATIN SMALL LETTER E WITH ACUTE
+<U00EA>     /xea         LATIN SMALL LETTER E WITH CIRCUMFLEX
+<U00EB>     /xeb         LATIN SMALL LETTER E WITH DIAERESIS
+<U00EC>     /xec         LATIN SMALL LETTER I WITH GRAVE
+<U00ED>     /xed         LATIN SMALL LETTER I WITH ACUTE
+<U00EE>     /xee         LATIN SMALL LETTER I WITH CIRCUMFLEX
+<U00EF>     /xef         LATIN SMALL LETTER I WITH DIAERESIS
+<U00F0>     /xf0         LATIN SMALL LETTER ETH (Icelandic)
+<U00F1>     /xf1         LATIN SMALL LETTER N WITH TILDE
+<U00F2>     /xf2         LATIN SMALL LETTER O WITH GRAVE
+<U00F3>     /xf3         LATIN SMALL LETTER O WITH ACUTE
+<U00F4>     /xf4         LATIN SMALL LETTER O WITH CIRCUMFLEX
+<U00F5>     /xf5         LATIN SMALL LETTER O WITH TILDE
+<U00F6>     /xf6         LATIN SMALL LETTER O WITH DIAERESIS
+<U00F7>     /xf7         DIVISION SIGN
+<U00F8>     /xf8         LATIN SMALL LETTER O WITH STROKE
+<U00F9>     /xf9         LATIN SMALL LETTER U WITH GRAVE
+<U00FA>     /xfa         LATIN SMALL LETTER U WITH ACUTE
+<U00FB>     /xfb         LATIN SMALL LETTER U WITH CIRCUMFLEX
+<U00FC>     /xfc         LATIN SMALL LETTER U WITH DIAERESIS
+<U00FD>     /xfd         LATIN SMALL LETTER Y WITH ACUTE
+<U00FE>     /xfe         LATIN SMALL LETTER THORN (Icelandic)
+<U00FF>     /xff         LATIN SMALL LETTER Y WITH DIAERESIS
+END CHARMAP
+
+WIDTH
+<U0020>...<U007E>	1
+<U0080>...<U00FF>	1
+END WIDTH
diff --git a/localedata/charmaps/GEORGIAN-PS b/localedata/charmaps/GEORGIAN-PS
new file mode 100644
index 0000000000..64615ff434
--- /dev/null
+++ b/localedata/charmaps/GEORGIAN-PS
@@ -0,0 +1,267 @@
+<code_set_name> GEORGIAN-PS
+<comment_char> %
+<escape_char> /
+
+CHARMAP
+<U0000>     /x00         NULL (NUL)
+<U0001>     /x01         START OF HEADING (SOH)
+<U0002>     /x02         START OF TEXT (STX)
+<U0003>     /x03         END OF TEXT (ETX)
+<U0004>     /x04         END OF TRANSMISSION (EOT)
+<U0005>     /x05         ENQUIRY (ENQ)
+<U0006>     /x06         ACKNOWLEDGE (ACK)
+<U0007>     /x07         BELL (BEL)
+<U0008>     /x08         BACKSPACE (BS)
+<U0009>     /x09         CHARACTER TABULATION (HT)
+<U000A>     /x0a         LINE FEED (LF)
+<U000B>     /x0b         LINE TABULATION (VT)
+<U000C>     /x0c         FORM FEED (FF)
+<U000D>     /x0d         CARRIAGE RETURN (CR)
+<U000E>     /x0e         SHIFT OUT (SO)
+<U000F>     /x0f         SHIFT IN (SI)
+<U0010>     /x10         DATALINK ESCAPE (DLE)
+<U0011>     /x11         DEVICE CONTROL ONE (DC1)
+<U0012>     /x12         DEVICE CONTROL TWO (DC2)
+<U0013>     /x13         DEVICE CONTROL THREE (DC3)
+<U0014>     /x14         DEVICE CONTROL FOUR (DC4)
+<U0015>     /x15         NEGATIVE ACKNOWLEDGE (NAK)
+<U0016>     /x16         SYNCHRONOUS IDLE (SYN)
+<U0017>     /x17         END OF TRANSMISSION BLOCK (ETB)
+<U0018>     /x18         CANCEL (CAN)
+<U0019>     /x19         END OF MEDIUM (EM)
+<U001A>     /x1a         SUBSTITUTE (SUB)
+<U001B>     /x1b         ESCAPE (ESC)
+<U001C>     /x1c         FILE SEPARATOR (IS4)
+<U001D>     /x1d         GROUP SEPARATOR (IS3)
+<U001E>     /x1e         RECORD SEPARATOR (IS2)
+<U001F>     /x1f         UNIT SEPARATOR (IS1)
+<U0020>     /x20         SPACE
+<U0021>     /x21         EXCLAMATION MARK
+<U0022>     /x22         QUOTATION MARK
+<U0023>     /x23         NUMBER SIGN
+<U0024>     /x24         DOLLAR SIGN
+<U0025>     /x25         PERCENT SIGN
+<U0026>     /x26         AMPERSAND
+<U0027>     /x27         APOSTROPHE
+<U0028>     /x28         LEFT PARENTHESIS
+<U0029>     /x29         RIGHT PARENTHESIS
+<U002A>     /x2a         ASTERISK
+<U002B>     /x2b         PLUS SIGN
+<U002C>     /x2c         COMMA
+<U002D>     /x2d         HYPHEN-MINUS
+<U002E>     /x2e         FULL STOP
+<U002F>     /x2f         SOLIDUS
+<U0030>     /x30         DIGIT ZERO
+<U0031>     /x31         DIGIT ONE
+<U0032>     /x32         DIGIT TWO
+<U0033>     /x33         DIGIT THREE
+<U0034>     /x34         DIGIT FOUR
+<U0035>     /x35         DIGIT FIVE
+<U0036>     /x36         DIGIT SIX
+<U0037>     /x37         DIGIT SEVEN
+<U0038>     /x38         DIGIT EIGHT
+<U0039>     /x39         DIGIT NINE
+<U003A>     /x3a         COLON
+<U003B>     /x3b         SEMICOLON
+<U003C>     /x3c         LESS-THAN SIGN
+<U003D>     /x3d         EQUALS SIGN
+<U003E>     /x3e         GREATER-THAN SIGN
+<U003F>     /x3f         QUESTION MARK
+<U0040>     /x40         COMMERCIAL AT
+<U0041>     /x41         LATIN CAPITAL LETTER A
+<U0042>     /x42         LATIN CAPITAL LETTER B
+<U0043>     /x43         LATIN CAPITAL LETTER C
+<U0044>     /x44         LATIN CAPITAL LETTER D
+<U0045>     /x45         LATIN CAPITAL LETTER E
+<U0046>     /x46         LATIN CAPITAL LETTER F
+<U0047>     /x47         LATIN CAPITAL LETTER G
+<U0048>     /x48         LATIN CAPITAL LETTER H
+<U0049>     /x49         LATIN CAPITAL LETTER I
+<U004A>     /x4a         LATIN CAPITAL LETTER J
+<U004B>     /x4b         LATIN CAPITAL LETTER K
+<U004C>     /x4c         LATIN CAPITAL LETTER L
+<U004D>     /x4d         LATIN CAPITAL LETTER M
+<U004E>     /x4e         LATIN CAPITAL LETTER N
+<U004F>     /x4f         LATIN CAPITAL LETTER O
+<U0050>     /x50         LATIN CAPITAL LETTER P
+<U0051>     /x51         LATIN CAPITAL LETTER Q
+<U0052>     /x52         LATIN CAPITAL LETTER R
+<U0053>     /x53         LATIN CAPITAL LETTER S
+<U0054>     /x54         LATIN CAPITAL LETTER T
+<U0055>     /x55         LATIN CAPITAL LETTER U
+<U0056>     /x56         LATIN CAPITAL LETTER V
+<U0057>     /x57         LATIN CAPITAL LETTER W
+<U0058>     /x58         LATIN CAPITAL LETTER X
+<U0059>     /x59         LATIN CAPITAL LETTER Y
+<U005A>     /x5a         LATIN CAPITAL LETTER Z
+<U005B>     /x5b         LEFT SQUARE BRACKET
+<U005C>     /x5c         REVERSE SOLIDUS
+<U005D>     /x5d         RIGHT SQUARE BRACKET
+<U005E>     /x5e         CIRCUMFLEX ACCENT
+<U005F>     /x5f         LOW LINE
+<U0060>     /x60         GRAVE ACCENT
+<U0061>     /x61         LATIN SMALL LETTER A
+<U0062>     /x62         LATIN SMALL LETTER B
+<U0063>     /x63         LATIN SMALL LETTER C
+<U0064>     /x64         LATIN SMALL LETTER D
+<U0065>     /x65         LATIN SMALL LETTER E
+<U0066>     /x66         LATIN SMALL LETTER F
+<U0067>     /x67         LATIN SMALL LETTER G
+<U0068>     /x68         LATIN SMALL LETTER H
+<U0069>     /x69         LATIN SMALL LETTER I
+<U006A>     /x6a         LATIN SMALL LETTER J
+<U006B>     /x6b         LATIN SMALL LETTER K
+<U006C>     /x6c         LATIN SMALL LETTER L
+<U006D>     /x6d         LATIN SMALL LETTER M
+<U006E>     /x6e         LATIN SMALL LETTER N
+<U006F>     /x6f         LATIN SMALL LETTER O
+<U0070>     /x70         LATIN SMALL LETTER P
+<U0071>     /x71         LATIN SMALL LETTER Q
+<U0072>     /x72         LATIN SMALL LETTER R
+<U0073>     /x73         LATIN SMALL LETTER S
+<U0074>     /x74         LATIN SMALL LETTER T
+<U0075>     /x75         LATIN SMALL LETTER U
+<U0076>     /x76         LATIN SMALL LETTER V
+<U0077>     /x77         LATIN SMALL LETTER W
+<U0078>     /x78         LATIN SMALL LETTER X
+<U0079>     /x79         LATIN SMALL LETTER Y
+<U007A>     /x7a         LATIN SMALL LETTER Z
+<U007B>     /x7b         LEFT CURLY BRACKET
+<U007C>     /x7c         VERTICAL LINE
+<U007D>     /x7d         RIGHT CURLY BRACKET
+<U007E>     /x7e         TILDE
+<U007F>     /x7f         DELETE (DEL)
+<U0080>     /x80         PADDING CHARACTER (PAD)
+<U0081>     /x81         HIGH OCTET PRESET (HOP)
+<U201A>     /x82         SINGLE LOW-9 QUOTATION MARK
+<U0192>     /x83         LATIN SMALL LETTER F WITH HOOK
+<U201E>     /x84         DOUBLE LOW-9 QUOTATION MARK
+<U2026>     /x85         HORIZONTAL ELLIPSIS
+<U2020>     /x86         DAGGER
+<U2021>     /x87         DOUBLE DAGGER
+<U02C6>     /x88         MODIFIER LETTER CIRCUMFLEX ACCENT
+<U2030>     /x89         PER MILLE SIGN
+<U0160>     /x8a         LATIN CAPITAL LETTER S WITH CARON
+<U2039>     /x8b         SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+<U0152>     /x8c         LATIN CAPITAL LIGATURE OE
+<U008D>     /x8d         REVERSE LINE FEED (RI)
+<U008E>     /x8e         SINGLE-SHIFT TWO (SS2)
+<U008F>     /x8f         SINGLE-SHIFT THREE (SS3)
+<U0090>     /x90         DEVICE CONTROL STRING (DCS)
+<U2018>     /x91         LEFT SINGLE QUOTATION MARK
+<U2019>     /x92         RIGHT SINGLE QUOTATION MARK
+<U201C>     /x93         LEFT DOUBLE QUOTATION MARK
+<U201D>     /x94         RIGHT DOUBLE QUOTATION MARK
+<U2022>     /x95         BULLET
+<U2013>     /x96         EN DASH
+<U2014>     /x97         EM DASH
+<U02DC>     /x98         SMALL TILDE
+<U2122>     /x99         TRADE MARK SIGN
+<U0161>     /x9a         LATIN SMALL LETTER S WITH CARON
+<U203A>     /x9b         SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+<U0153>     /x9c         LATIN SMALL LIGATURE OE
+<U009D>     /x9d         OPERATING SYSTEM COMMAND (OSC)
+<U009E>     /x9e         PRIVACY MESSAGE (PM)
+<U0178>     /x9f         LATIN CAPITAL LETTER Y WITH DIAERESIS
+<U00A0>     /xa0         NO-BREAK SPACE
+<U00A1>     /xa1         INVERTED EXCLAMATION MARK
+<U00A2>     /xa2         CENT SIGN
+<U00A3>     /xa3         POUND SIGN
+<U00A4>     /xa4         CURRENCY SIGN
+<U00A5>     /xa5         YEN SIGN
+<U00A6>     /xa6         BROKEN BAR
+<U00A7>     /xa7         SECTION SIGN
+<U00A8>     /xa8         DIAERESIS
+<U00A9>     /xa9         COPYRIGHT SIGN
+<U00AA>     /xaa         FEMININE ORDINAL INDICATOR
+<U00AB>     /xab         LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+<U00AC>     /xac         NOT SIGN
+<U00AD>     /xad         SOFT HYPHEN
+<U00AE>     /xae         REGISTERED SIGN
+<U00AF>     /xaf         MACRON
+<U00B0>     /xb0         DEGREE SIGN
+<U00B1>     /xb1         PLUS-MINUS SIGN
+<U00B2>     /xb2         SUPERSCRIPT TWO
+<U00B3>     /xb3         SUPERSCRIPT THREE
+<U00B4>     /xb4         ACUTE ACCENT
+<U00B5>     /xb5         MICRO SIGN
+<U00B6>     /xb6         PILCROW SIGN
+<U00B7>     /xb7         MIDDLE DOT
+<U00B8>     /xb8         CEDILLA
+<U00B9>     /xb9         SUPERSCRIPT ONE
+<U00BA>     /xba         MASCULINE ORDINAL INDICATOR
+<U00BB>     /xbb         RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+<U00BC>     /xbc         VULGAR FRACTION ONE QUARTER
+<U00BD>     /xbd         VULGAR FRACTION ONE HALF
+<U00BE>     /xbe         VULGAR FRACTION THREE QUARTERS
+<U00BF>     /xbf         INVERTED QUESTION MARK
+<U10D0>     /xc0         GEORGIAN LETTER AN
+<U10D1>     /xc1         GEORGIAN LETTER BAN
+<U10D2>     /xc2         GEORGIAN LETTER GAN
+<U10D3>     /xc3         GEORGIAN LETTER DON
+<U10D4>     /xc4         GEORGIAN LETTER EN
+<U10D5>     /xc5         GEORGIAN LETTER VIN
+<U10D6>     /xc6         GEORGIAN LETTER ZEN
+<U10F1>     /xc7         GEORGIAN LETTER HE
+<U10D7>     /xc8         GEORGIAN LETTER TAN
+<U10D8>     /xc9         GEORGIAN LETTER IN
+<U10D9>     /xca         GEORGIAN LETTER KAN
+<U10DA>     /xcb         GEORGIAN LETTER LAS
+<U10DB>     /xcc         GEORGIAN LETTER MAN
+<U10DC>     /xcd         GEORGIAN LETTER NAR
+<U10F2>     /xce         GEORGIAN LETTER HIE
+<U10DD>     /xcf         GEORGIAN LETTER ON
+<U10DE>     /xd0         GEORGIAN LETTER PAR
+<U10DF>     /xd1         GEORGIAN LETTER ZHAR
+<U10E0>     /xd2         GEORGIAN LETTER RAE
+<U10E1>     /xd3         GEORGIAN LETTER SAN
+<U10E2>     /xd4         GEORGIAN LETTER TAR
+<U10F3>     /xd5         GEORGIAN LETTER WE
+<U10E3>     /xd6         GEORGIAN LETTER UN
+<U10E4>     /xd7         GEORGIAN LETTER PHAR
+<U10E5>     /xd8         GEORGIAN LETTER KHAR
+<U10E6>     /xd9         GEORGIAN LETTER GHAN
+<U10E7>     /xda         GEORGIAN LETTER QAR
+<U10E8>     /xdb         GEORGIAN LETTER SHIN
+<U10E9>     /xdc         GEORGIAN LETTER CHIN
+<U10EA>     /xdd         GEORGIAN LETTER CAN
+<U10EB>     /xde         GEORGIAN LETTER JIL
+<U10EC>     /xdf         GEORGIAN LETTER CIL
+<U10ED>     /xe0         GEORGIAN LETTER CHAR
+<U10EE>     /xe1         GEORGIAN LETTER XAN
+<U10F4>     /xe2         GEORGIAN LETTER HAR
+<U10EF>     /xe3         GEORGIAN LETTER JHAN
+<U10F0>     /xe4         GEORGIAN LETTER HAE
+<U10F5>     /xe5         GEORGIAN LETTER HOE
+<U00E6>     /xe6         LATIN SMALL LETTER AE
+<U00E7>     /xe7         LATIN SMALL LETTER C WITH CEDILLA
+<U00E8>     /xe8         LATIN SMALL LETTER E WITH GRAVE
+<U00E9>     /xe9         LATIN SMALL LETTER E WITH ACUTE
+<U00EA>     /xea         LATIN SMALL LETTER E WITH CIRCUMFLEX
+<U00EB>     /xeb         LATIN SMALL LETTER E WITH DIAERESIS
+<U00EC>     /xec         LATIN SMALL LETTER I WITH GRAVE
+<U00ED>     /xed         LATIN SMALL LETTER I WITH ACUTE
+<U00EE>     /xee         LATIN SMALL LETTER I WITH CIRCUMFLEX
+<U00EF>     /xef         LATIN SMALL LETTER I WITH DIAERESIS
+<U00F0>     /xf0         LATIN SMALL LETTER ETH (Icelandic)
+<U00F1>     /xf1         LATIN SMALL LETTER N WITH TILDE
+<U00F2>     /xf2         LATIN SMALL LETTER O WITH GRAVE
+<U00F3>     /xf3         LATIN SMALL LETTER O WITH ACUTE
+<U00F4>     /xf4         LATIN SMALL LETTER O WITH CIRCUMFLEX
+<U00F5>     /xf5         LATIN SMALL LETTER O WITH TILDE
+<U00F6>     /xf6         LATIN SMALL LETTER O WITH DIAERESIS
+<U00F7>     /xf7         DIVISION SIGN
+<U00F8>     /xf8         LATIN SMALL LETTER O WITH STROKE
+<U00F9>     /xf9         LATIN SMALL LETTER U WITH GRAVE
+<U00FA>     /xfa         LATIN SMALL LETTER U WITH ACUTE
+<U00FB>     /xfb         LATIN SMALL LETTER U WITH CIRCUMFLEX
+<U00FC>     /xfc         LATIN SMALL LETTER U WITH DIAERESIS
+<U00FD>     /xfd         LATIN SMALL LETTER Y WITH ACUTE
+<U00FE>     /xfe         LATIN SMALL LETTER THORN (Icelandic)
+<U00FF>     /xff         LATIN SMALL LETTER Y WITH DIAERESIS
+END CHARMAP
+
+WIDTH
+<U0020>...<U007E>	1
+<U0080>...<U00FF>	1
+END WIDTH
diff --git a/localedata/locales/ka_GE b/localedata/locales/ka_GE
index 7bccccab63..7f49e02310 100644
--- a/localedata/locales/ka_GE
+++ b/localedata/locales/ka_GE
@@ -158,3 +158,8 @@ tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025><U006C>"
 int_select "8~10"
 int_prefix "995"
 END LC_TELEPHONE
+
+LC_NAME
+% FIXME
+copy "en_DK"
+END LC_NAME
diff --git a/malloc/set-freeres.c b/malloc/set-freeres.c
index 1724070704..d836d0c1bf 100644
--- a/malloc/set-freeres.c
+++ b/malloc/set-freeres.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1999, 2000, 2001 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -21,6 +21,10 @@
 #include <set-hooks.h>
 #include <libc-internal.h>
 
+#ifdef USE_IN_LIBIO
+# include "../libio/libioP.h"
+#endif
+
 DEFINE_HOOK (__libc_subfreeres, (void));
 
 void
@@ -31,5 +35,11 @@ __libc_freeres (void)
   static long int already_called;
 
   if (compare_and_swap (&already_called, 0, 1))
-    RUN_HOOK (__libc_subfreeres, ());
+    {
+#ifdef USE_IN_LIBIO
+      _IO_cleanup ();
+#endif
+
+      RUN_HOOK (__libc_subfreeres, ());
+    }
 }