libio: Remove _IO_adjust_column, _IO_adjust_wcolumn, column tracking

Message ID 87pmlavjwv.fsf@oldenburg.str.redhat.com
State New
Delegated to: Adhemerval Zanella Netto
Headers
Series libio: Remove _IO_adjust_column, _IO_adjust_wcolumn, column tracking |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent
dj/TryBot-32bit success Build for i686

Commit Message

Florian Weimer April 21, 2022, 9:57 a.m. UTC
  Column number tracking was removed from the iostream library during
C++98 standardization.  It looks like it was never used by
applications.

On most ports, this is hard symbol removal (no compatibility symbol).
However, for GLIBC_2.0 ports, it is necessary to keep an
_IO_adjust_column export because old libstdc++ references this symbol,
although after the column number is no longer updated by glibc,
it will not be called anymore.

_IO_adjust_wcolumn was never used in libstdc++. (The wide character
support was not completed before the switch to C++98 <iostream> and
its template-based implementation.)

Tested on i686-linux-gnu and x86_64-linux-gnu.  Built with
build-many-glibcs.py.

---
 libio/Versions                                         |  5 +++--
 libio/bits/types/struct_FILE.h                         |  3 +--
 libio/fileops.c                                        |  2 --
 libio/genops.c                                         | 18 ++++++++++--------
 libio/libioP.h                                         |  3 ---
 libio/oldfileops.c                                     |  2 --
 libio/wgenops.c                                        | 11 -----------
 sysdeps/mach/hurd/i386/libc.abilist                    |  2 --
 sysdeps/unix/sysv/linux/aarch64/libc.abilist           |  2 --
 sysdeps/unix/sysv/linux/alpha/libc.abilist             |  1 -
 sysdeps/unix/sysv/linux/arc/libc.abilist               |  2 --
 sysdeps/unix/sysv/linux/arm/be/libc.abilist            |  2 --
 sysdeps/unix/sysv/linux/arm/le/libc.abilist            |  2 --
 sysdeps/unix/sysv/linux/csky/libc.abilist              |  2 --
 sysdeps/unix/sysv/linux/hppa/libc.abilist              |  2 --
 sysdeps/unix/sysv/linux/i386/libc.abilist              |  1 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist              |  2 --
 sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist     |  2 --
 sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist       |  1 -
 sysdeps/unix/sysv/linux/microblaze/be/libc.abilist     |  2 --
 sysdeps/unix/sysv/linux/microblaze/le/libc.abilist     |  2 --
 sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist   |  1 -
 sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist |  1 -
 sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist   |  1 -
 sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist   |  1 -
 sysdeps/unix/sysv/linux/nios2/libc.abilist             |  2 --
 sysdeps/unix/sysv/linux/or1k/libc.abilist              |  2 --
 .../unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist |  1 -
 .../sysv/linux/powerpc/powerpc32/nofpu/libc.abilist    |  1 -
 .../unix/sysv/linux/powerpc/powerpc64/be/libc.abilist  |  2 --
 .../unix/sysv/linux/powerpc/powerpc64/le/libc.abilist  |  2 --
 sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist        |  2 --
 sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist        |  2 --
 sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist      |  1 -
 sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist      |  2 --
 sysdeps/unix/sysv/linux/sh/be/libc.abilist             |  2 --
 sysdeps/unix/sysv/linux/sh/le/libc.abilist             |  2 --
 sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist     |  1 -
 sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist     |  2 --
 sysdeps/unix/sysv/linux/x86_64/64/libc.abilist         |  2 --
 sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist        |  2 --
 41 files changed, 14 insertions(+), 87 deletions(-)
  

Comments

Florian Weimer April 21, 2022, 10 a.m. UTC | #1
* Florian Weimer:

> Column number tracking was removed from the iostream library during
> C++98 standardization.  It looks like it was never used by
> applications.
>
> On most ports, this is hard symbol removal (no compatibility symbol).
> However, for GLIBC_2.0 ports, it is necessary to keep an
> _IO_adjust_column export because old libstdc++ references this symbol,
> although after the column number is no longer updated by glibc,
> it will not be called anymore.
>
> _IO_adjust_wcolumn was never used in libstdc++. (The wide character
> support was not completed before the switch to C++98 <iostream> and
> its template-based implementation.)
>
> Tested on i686-linux-gnu and x86_64-linux-gnu.  Built with
> build-many-glibcs.py.

And I forgot the NEWS entry:

diff --git a/NEWS b/NEWS
index 4b6d9de2b5..e04aa771f5 100644
--- a/NEWS
+++ b/NEWS
@@ -17,6 +17,12 @@ Deprecated and removed features, and other changes affecting compatibility:
   removal of the LD_TRACE_PRELINKING, and LD_USE_LOAD_BIAS, environment
   variables and their functionality in the dynamic loader.
 
+* Column number tracking for streams and the _IO_adjust_column and
+  _IO_adjust_wcolumn functions have been removed.  For targets with the
+  GLIBC_2.0 symbol version, a compatibility definition of
+  _IO_adjust_column is still provided; otherwise the symbols have been
+  removed completely.
+
 Changes to build and runtime requirements:
 
   [Add changes to build and runtime requirements here]

Thanks,
Florian
  

Patch

diff --git a/libio/Versions b/libio/Versions
index b91a7bc914..0310086214 100644
--- a/libio/Versions
+++ b/libio/Versions
@@ -104,11 +104,12 @@  libc {
     pclose; popen;
   }
   GLIBC_2.2 {
-    # functions used in libstdc++
+    # Functions planned to be used in libstdc++ (but such use never
+    # happened in a GCC release).
     _IO_fgetpos; _IO_fgetpos64; _IO_fsetpos; _IO_fsetpos64;
     _IO_wdo_write; _IO_wfile_jumps; _IO_wfile_overflow; _IO_wfile_seekoff;
     _IO_wfile_setbuf; _IO_wfile_sync; _IO_wfile_underflow; _IO_wfile_xsputn;
-    _IO_adjust_wcolumn; _IO_free_wbackup_area; _IO_init_wmarker;
+    _IO_free_wbackup_area; _IO_init_wmarker;
     _IO_least_wmarker; _IO_seekwmark; _IO_sputbackwc; _IO_sungetwc;
     _IO_switch_to_main_wget_area; _IO_switch_to_wbackup_area;
     _IO_switch_to_wget_mode; _IO_unsave_wmarkers; _IO_wdefault_doallocate;
diff --git a/libio/bits/types/struct_FILE.h b/libio/bits/types/struct_FILE.h
index 1eb429888c..e8a9a8c21e 100644
--- a/libio/bits/types/struct_FILE.h
+++ b/libio/bits/types/struct_FILE.h
@@ -73,8 +73,7 @@  struct _IO_FILE
   int _flags2;
   __off_t _old_offset; /* This used to be _offset but it's too small.  */
 
-  /* 1+column number of pbase(); 0 is unknown. */
-  unsigned short _cur_column;
+  unsigned short _cur_column_unused; /* Always 0.  */
   signed char _vtable_offset;
   char _shortbuf[1];
 
diff --git a/libio/fileops.c b/libio/fileops.c
index 41c18be789..ed8e1eb672 100644
--- a/libio/fileops.c
+++ b/libio/fileops.c
@@ -446,8 +446,6 @@  new_do_write (FILE *fp, const char *data, size_t to_do)
       fp->_offset = new_pos;
     }
   count = _IO_SYSWRITE (fp, data, to_do);
-  if (fp->_cur_column && count)
-    fp->_cur_column = _IO_adjust_column (fp->_cur_column - 1, data, count) + 1;
   _IO_setg (fp, fp->_IO_buf_base, fp->_IO_buf_base, fp->_IO_buf_base);
   fp->_IO_write_base = fp->_IO_write_ptr = fp->_IO_buf_base;
   fp->_IO_write_end = (fp->_mode <= 0
diff --git a/libio/genops.c b/libio/genops.c
index 1b629eb695..fc05dbc9c3 100644
--- a/libio/genops.c
+++ b/libio/genops.c
@@ -547,7 +547,7 @@  _IO_old_init (FILE *fp, int flags)
   fp->_IO_backup_base = NULL;
   fp->_IO_save_end = NULL;
   fp->_markers = NULL;
-  fp->_cur_column = 0;
+  fp->_cur_column_unused = 0;
 #if _IO_JUMPS_OFFSET
   fp->_vtable_offset = 0;
 #endif
@@ -670,16 +670,18 @@  _IO_sungetc (FILE *fp)
   return result;
 }
 
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
+/* This is referenced in the old libstdc++ streambuf implementation.
+   Since the column number in glibc is always 0, this is only called
+   if the application calls streambuf::set_column.  */
 unsigned
-_IO_adjust_column (unsigned start, const char *line, int count)
+__IO_adjust_column (unsigned start, const char *line, int count)
 {
-  const char *ptr = line + count;
-  while (ptr > line)
-    if (*--ptr == '\n')
-      return line + count - ptr - 1;
-  return start + count;
+  /* Indicate that no column number information is available.  */
+  return -1;
 }
-libc_hidden_def (_IO_adjust_column)
+compat_symbol (libc, __IO_adjust_column, _IO_adjust_column, GLIBC_2_0);
+#endif
 
 int
 _IO_flush_all_lockp (int do_lock)
diff --git a/libio/libioP.h b/libio/libioP.h
index ba4fdbd200..be88b309b1 100644
--- a/libio/libioP.h
+++ b/libio/libioP.h
@@ -374,8 +374,6 @@  extern void _IO_unsave_markers (FILE *) __THROW;
 libc_hidden_proto (_IO_unsave_markers)
 extern void _IO_setb (FILE *, char *, char *, int) __THROW;
 libc_hidden_proto (_IO_setb)
-extern unsigned _IO_adjust_column (unsigned, const char *, int) __THROW;
-libc_hidden_proto (_IO_adjust_column)
 #define _IO_sputn(__fp, __s, __n) _IO_XSPUTN (__fp, __s, __n)
 
 ssize_t _IO_least_wmarker (FILE *, wchar_t *) __THROW;
@@ -394,7 +392,6 @@  extern wint_t _IO_sungetwc (FILE *) __THROW;
 extern void _IO_wdoallocbuf (FILE *) __THROW;
 libc_hidden_proto (_IO_wdoallocbuf)
 extern void _IO_unsave_wmarkers (FILE *) __THROW;
-extern unsigned _IO_adjust_wcolumn (unsigned, const wchar_t *, int) __THROW;
 extern off64_t get_file_offset (FILE *fp);
 
 /* Marker-related function. */
diff --git a/libio/oldfileops.c b/libio/oldfileops.c
index ea3b864447..5f3b6a01e4 100644
--- a/libio/oldfileops.c
+++ b/libio/oldfileops.c
@@ -276,8 +276,6 @@  old_do_write (FILE *fp, const char *data, size_t to_do)
       fp->_old_offset = new_pos;
     }
   count = _IO_SYSWRITE (fp, data, to_do);
-  if (fp->_cur_column && count)
-    fp->_cur_column = _IO_adjust_column (fp->_cur_column - 1, data, count) + 1;
   _IO_setg (fp, fp->_IO_buf_base, fp->_IO_buf_base, fp->_IO_buf_base);
   fp->_IO_write_base = fp->_IO_write_ptr = fp->_IO_buf_base;
   fp->_IO_write_end = ((fp->_flags & (_IO_LINE_BUF | _IO_UNBUFFERED))
diff --git a/libio/wgenops.c b/libio/wgenops.c
index e7ea75aed2..7231fa2ba1 100644
--- a/libio/wgenops.c
+++ b/libio/wgenops.c
@@ -528,17 +528,6 @@  _IO_sungetwc (FILE *fp)
   return result;
 }
 
-
-unsigned
-_IO_adjust_wcolumn (unsigned start, const wchar_t *line, int count)
-{
-  const wchar_t *ptr = line + count;
-  while (ptr > line)
-    if (*--ptr == L'\n')
-      return line + count - ptr - 1;
-  return start + count;
-}
-
 void
 _IO_init_wmarker (struct _IO_marker *marker, FILE *fp)
 {
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 4dc87e9061..e6791852e6 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -59,8 +59,6 @@  GLIBC_2.2.6 _Exit F
 GLIBC_2.2.6 _IO_2_1_stderr_ D 0x98
 GLIBC_2.2.6 _IO_2_1_stdin_ D 0x98
 GLIBC_2.2.6 _IO_2_1_stdout_ D 0x98
-GLIBC_2.2.6 _IO_adjust_column F
-GLIBC_2.2.6 _IO_adjust_wcolumn F
 GLIBC_2.2.6 _IO_default_doallocate F
 GLIBC_2.2.6 _IO_default_finish F
 GLIBC_2.2.6 _IO_default_pbackfail F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 1b63d9e447..9798e6cc17 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -2,8 +2,6 @@  GLIBC_2.17 _Exit F
 GLIBC_2.17 _IO_2_1_stderr_ D 0xe0
 GLIBC_2.17 _IO_2_1_stdin_ D 0xe0
 GLIBC_2.17 _IO_2_1_stdout_ D 0xe0
-GLIBC_2.17 _IO_adjust_column F
-GLIBC_2.17 _IO_adjust_wcolumn F
 GLIBC_2.17 _IO_default_doallocate F
 GLIBC_2.17 _IO_default_finish F
 GLIBC_2.17 _IO_default_pbackfail F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index e7e4cf7d2a..ed86d82f1e 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1912,7 +1912,6 @@  GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
-GLIBC_2.2 _IO_adjust_wcolumn F
 GLIBC_2.2 _IO_fgetpos F
 GLIBC_2.2 _IO_fgetpos64 F
 GLIBC_2.2 _IO_free_wbackup_area F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index bc3d228e31..0701fe18d6 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -2,8 +2,6 @@  GLIBC_2.32 _Exit F
 GLIBC_2.32 _IO_2_1_stderr_ D 0x9c
 GLIBC_2.32 _IO_2_1_stdin_ D 0x9c
 GLIBC_2.32 _IO_2_1_stdout_ D 0x9c
-GLIBC_2.32 _IO_adjust_column F
-GLIBC_2.32 _IO_adjust_wcolumn F
 GLIBC_2.32 _IO_default_doallocate F
 GLIBC_2.32 _IO_default_finish F
 GLIBC_2.32 _IO_default_pbackfail F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index db7039c4ab..c6b3c89c21 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -500,8 +500,6 @@  GLIBC_2.4 _Exit F
 GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
 GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
 GLIBC_2.4 _IO_2_1_stdout_ D 0xa0
-GLIBC_2.4 _IO_adjust_column F
-GLIBC_2.4 _IO_adjust_wcolumn F
 GLIBC_2.4 _IO_default_doallocate F
 GLIBC_2.4 _IO_default_finish F
 GLIBC_2.4 _IO_default_pbackfail F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index d2add4fb49..1651a419f8 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -497,8 +497,6 @@  GLIBC_2.4 _Exit F
 GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
 GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
 GLIBC_2.4 _IO_2_1_stdout_ D 0xa0
-GLIBC_2.4 _IO_adjust_column F
-GLIBC_2.4 _IO_adjust_wcolumn F
 GLIBC_2.4 _IO_default_doallocate F
 GLIBC_2.4 _IO_default_finish F
 GLIBC_2.4 _IO_default_pbackfail F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 355d72a30c..0e5d81aed8 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -2,8 +2,6 @@  GLIBC_2.29 _Exit F
 GLIBC_2.29 _IO_2_1_stderr_ D 0x98
 GLIBC_2.29 _IO_2_1_stdin_ D 0x98
 GLIBC_2.29 _IO_2_1_stdout_ D 0x98
-GLIBC_2.29 _IO_adjust_column F
-GLIBC_2.29 _IO_adjust_wcolumn F
 GLIBC_2.29 _IO_default_doallocate F
 GLIBC_2.29 _IO_default_finish F
 GLIBC_2.29 _IO_default_pbackfail F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 3df39bb28c..bbe46072e2 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -129,8 +129,6 @@  GLIBC_2.2 _Exit F
 GLIBC_2.2 _IO_2_1_stderr_ D 0xa0
 GLIBC_2.2 _IO_2_1_stdin_ D 0xa0
 GLIBC_2.2 _IO_2_1_stdout_ D 0xa0
-GLIBC_2.2 _IO_adjust_column F
-GLIBC_2.2 _IO_adjust_wcolumn F
 GLIBC_2.2 _IO_default_doallocate F
 GLIBC_2.2 _IO_default_finish F
 GLIBC_2.2 _IO_default_pbackfail F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index c4da358f80..c9708687c7 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1914,7 +1914,6 @@  GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
-GLIBC_2.2 _IO_adjust_wcolumn F
 GLIBC_2.2 _IO_fgetpos F
 GLIBC_2.2 _IO_fgetpos64 F
 GLIBC_2.2 _IO_free_wbackup_area F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 241bac70ea..6ccf394941 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -125,8 +125,6 @@  GLIBC_2.2 _Exit F
 GLIBC_2.2 _IO_2_1_stderr_ D 0xe0
 GLIBC_2.2 _IO_2_1_stdin_ D 0xe0
 GLIBC_2.2 _IO_2_1_stdout_ D 0xe0
-GLIBC_2.2 _IO_adjust_column F
-GLIBC_2.2 _IO_adjust_wcolumn F
 GLIBC_2.2 _IO_default_doallocate F
 GLIBC_2.2 _IO_default_finish F
 GLIBC_2.2 _IO_default_pbackfail F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 78bf372b72..c110a47e8d 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -501,8 +501,6 @@  GLIBC_2.4 _Exit F
 GLIBC_2.4 _IO_2_1_stderr_ D 0x98
 GLIBC_2.4 _IO_2_1_stdin_ D 0x98
 GLIBC_2.4 _IO_2_1_stdout_ D 0x98
-GLIBC_2.4 _IO_adjust_column F
-GLIBC_2.4 _IO_adjust_wcolumn F
 GLIBC_2.4 _IO_default_doallocate F
 GLIBC_2.4 _IO_default_finish F
 GLIBC_2.4 _IO_default_pbackfail F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 00df5c901f..9d12625a00 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1870,7 +1870,6 @@  GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
-GLIBC_2.2 _IO_adjust_wcolumn F
 GLIBC_2.2 _IO_fgetpos F
 GLIBC_2.2 _IO_fgetpos64 F
 GLIBC_2.2 _IO_free_wbackup_area F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index e8118569c3..2b59c40b3d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -2,8 +2,6 @@  GLIBC_2.18 _Exit F
 GLIBC_2.18 _IO_2_1_stderr_ D 0x98
 GLIBC_2.18 _IO_2_1_stdin_ D 0x98
 GLIBC_2.18 _IO_2_1_stdout_ D 0x98
-GLIBC_2.18 _IO_adjust_column F
-GLIBC_2.18 _IO_adjust_wcolumn F
 GLIBC_2.18 _IO_default_doallocate F
 GLIBC_2.18 _IO_default_finish F
 GLIBC_2.18 _IO_default_pbackfail F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index c0d2373e64..986e61789c 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -2,8 +2,6 @@  GLIBC_2.18 _Exit F
 GLIBC_2.18 _IO_2_1_stderr_ D 0x98
 GLIBC_2.18 _IO_2_1_stdin_ D 0x98
 GLIBC_2.18 _IO_2_1_stdout_ D 0x98
-GLIBC_2.18 _IO_adjust_column F
-GLIBC_2.18 _IO_adjust_wcolumn F
 GLIBC_2.18 _IO_default_doallocate F
 GLIBC_2.18 _IO_default_finish F
 GLIBC_2.18 _IO_default_pbackfail F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 2d0fd04f54..8beab8e88f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1457,7 +1457,6 @@  GLIBC_2.2 _Exit F
 GLIBC_2.2 _IO_2_1_stderr_ D 0xa0
 GLIBC_2.2 _IO_2_1_stdin_ D 0xa0
 GLIBC_2.2 _IO_2_1_stdout_ D 0xa0
-GLIBC_2.2 _IO_adjust_wcolumn F
 GLIBC_2.2 _IO_do_write F
 GLIBC_2.2 _IO_fclose F
 GLIBC_2.2 _IO_fdopen F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index e39ccfb312..bc8ee563e0 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1455,7 +1455,6 @@  GLIBC_2.2 _Exit F
 GLIBC_2.2 _IO_2_1_stderr_ D 0xa0
 GLIBC_2.2 _IO_2_1_stdin_ D 0xa0
 GLIBC_2.2 _IO_2_1_stdout_ D 0xa0
-GLIBC_2.2 _IO_adjust_wcolumn F
 GLIBC_2.2 _IO_do_write F
 GLIBC_2.2 _IO_fclose F
 GLIBC_2.2 _IO_fdopen F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 1e900f86e4..f38999a288 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1455,7 +1455,6 @@  GLIBC_2.2 _Exit F
 GLIBC_2.2 _IO_2_1_stderr_ D 0xa0
 GLIBC_2.2 _IO_2_1_stdin_ D 0xa0
 GLIBC_2.2 _IO_2_1_stdout_ D 0xa0
-GLIBC_2.2 _IO_adjust_wcolumn F
 GLIBC_2.2 _IO_do_write F
 GLIBC_2.2 _IO_fclose F
 GLIBC_2.2 _IO_fdopen F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 9145ba7931..cc9e44ea8a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1451,7 +1451,6 @@  GLIBC_2.2 _Exit F
 GLIBC_2.2 _IO_2_1_stderr_ D 0xe0
 GLIBC_2.2 _IO_2_1_stdin_ D 0xe0
 GLIBC_2.2 _IO_2_1_stdout_ D 0xe0
-GLIBC_2.2 _IO_adjust_wcolumn F
 GLIBC_2.2 _IO_do_write F
 GLIBC_2.2 _IO_fclose F
 GLIBC_2.2 _IO_fdopen F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index e95d60d926..6bb4ba8626 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -2,8 +2,6 @@  GLIBC_2.21 _Exit F
 GLIBC_2.21 _IO_2_1_stderr_ D 0x98
 GLIBC_2.21 _IO_2_1_stdin_ D 0x98
 GLIBC_2.21 _IO_2_1_stdout_ D 0x98
-GLIBC_2.21 _IO_adjust_column F
-GLIBC_2.21 _IO_adjust_wcolumn F
 GLIBC_2.21 _IO_default_doallocate F
 GLIBC_2.21 _IO_default_finish F
 GLIBC_2.21 _IO_default_pbackfail F
diff --git a/sysdeps/unix/sysv/linux/or1k/libc.abilist b/sysdeps/unix/sysv/linux/or1k/libc.abilist
index ca934e374b..cea5642be3 100644
--- a/sysdeps/unix/sysv/linux/or1k/libc.abilist
+++ b/sysdeps/unix/sysv/linux/or1k/libc.abilist
@@ -3,8 +3,6 @@  GLIBC_2.35 _Fork F
 GLIBC_2.35 _IO_2_1_stderr_ D 0x9c
 GLIBC_2.35 _IO_2_1_stdin_ D 0x9c
 GLIBC_2.35 _IO_2_1_stdout_ D 0x9c
-GLIBC_2.35 _IO_adjust_column F
-GLIBC_2.35 _IO_adjust_wcolumn F
 GLIBC_2.35 _IO_default_doallocate F
 GLIBC_2.35 _IO_default_finish F
 GLIBC_2.35 _IO_default_pbackfail F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 3820b9f235..02008a6492 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1876,7 +1876,6 @@  GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
-GLIBC_2.2 _IO_adjust_wcolumn F
 GLIBC_2.2 _IO_fgetpos F
 GLIBC_2.2 _IO_fgetpos64 F
 GLIBC_2.2 _IO_free_wbackup_area F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 464dc27fcd..b8a6e0f7aa 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1880,7 +1880,6 @@  GLIBC_2.19 __atomic_feclearexcept F
 GLIBC_2.19 __atomic_feholdexcept F
 GLIBC_2.19 __atomic_feupdateenv F
 GLIBC_2.19 __flt_rounds F
-GLIBC_2.2 _IO_adjust_wcolumn F
 GLIBC_2.2 _IO_fgetpos F
 GLIBC_2.2 _IO_fgetpos64 F
 GLIBC_2.2 _IO_free_wbackup_area F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 2f7e58747f..009a4506f4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -159,8 +159,6 @@  GLIBC_2.3 _Exit F
 GLIBC_2.3 _IO_2_1_stderr_ D 0xe0
 GLIBC_2.3 _IO_2_1_stdin_ D 0xe0
 GLIBC_2.3 _IO_2_1_stdout_ D 0xe0
-GLIBC_2.3 _IO_adjust_column F
-GLIBC_2.3 _IO_adjust_wcolumn F
 GLIBC_2.3 _IO_default_doallocate F
 GLIBC_2.3 _IO_default_finish F
 GLIBC_2.3 _IO_default_pbackfail F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 4f3043d913..6a3b961c99 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -2,8 +2,6 @@  GLIBC_2.17 _Exit F
 GLIBC_2.17 _IO_2_1_stderr_ D 0xe0
 GLIBC_2.17 _IO_2_1_stdin_ D 0xe0
 GLIBC_2.17 _IO_2_1_stdout_ D 0xe0
-GLIBC_2.17 _IO_adjust_column F
-GLIBC_2.17 _IO_adjust_wcolumn F
 GLIBC_2.17 _IO_default_doallocate F
 GLIBC_2.17 _IO_default_finish F
 GLIBC_2.17 _IO_default_pbackfail F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 84b6ac815a..5b82140254 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -2,8 +2,6 @@  GLIBC_2.33 _Exit F
 GLIBC_2.33 _IO_2_1_stderr_ D 0xa0
 GLIBC_2.33 _IO_2_1_stdin_ D 0xa0
 GLIBC_2.33 _IO_2_1_stdout_ D 0xa0
-GLIBC_2.33 _IO_adjust_column F
-GLIBC_2.33 _IO_adjust_wcolumn F
 GLIBC_2.33 _IO_default_doallocate F
 GLIBC_2.33 _IO_default_finish F
 GLIBC_2.33 _IO_default_pbackfail F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 4d5c19c56a..54939a4efa 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -2,8 +2,6 @@  GLIBC_2.27 _Exit F
 GLIBC_2.27 _IO_2_1_stderr_ D 0xe0
 GLIBC_2.27 _IO_2_1_stdin_ D 0xe0
 GLIBC_2.27 _IO_2_1_stdout_ D 0xe0
-GLIBC_2.27 _IO_adjust_column F
-GLIBC_2.27 _IO_adjust_wcolumn F
 GLIBC_2.27 _IO_default_doallocate F
 GLIBC_2.27 _IO_default_finish F
 GLIBC_2.27 _IO_default_pbackfail F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 7c5ee8d569..50b00cd38d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1874,7 +1874,6 @@  GLIBC_2.19 getcontext F
 GLIBC_2.19 longjmp F
 GLIBC_2.19 setjmp F
 GLIBC_2.19 siglongjmp F
-GLIBC_2.2 _IO_adjust_wcolumn F
 GLIBC_2.2 _IO_fgetpos F
 GLIBC_2.2 _IO_fgetpos64 F
 GLIBC_2.2 _IO_free_wbackup_area F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 50de0b46cf..1faa5df492 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -95,8 +95,6 @@  GLIBC_2.2 _Exit F
 GLIBC_2.2 _IO_2_1_stderr_ D 0xe0
 GLIBC_2.2 _IO_2_1_stdin_ D 0xe0
 GLIBC_2.2 _IO_2_1_stdout_ D 0xe0
-GLIBC_2.2 _IO_adjust_column F
-GLIBC_2.2 _IO_adjust_wcolumn F
 GLIBC_2.2 _IO_default_doallocate F
 GLIBC_2.2 _IO_default_finish F
 GLIBC_2.2 _IO_default_pbackfail F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 66fba013ca..7816509dc1 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -129,8 +129,6 @@  GLIBC_2.2 _Exit F
 GLIBC_2.2 _IO_2_1_stderr_ D 0x98
 GLIBC_2.2 _IO_2_1_stdin_ D 0x98
 GLIBC_2.2 _IO_2_1_stdout_ D 0x98
-GLIBC_2.2 _IO_adjust_column F
-GLIBC_2.2 _IO_adjust_wcolumn F
 GLIBC_2.2 _IO_default_doallocate F
 GLIBC_2.2 _IO_default_finish F
 GLIBC_2.2 _IO_default_pbackfail F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 38703f8aa0..20da10fca9 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -129,8 +129,6 @@  GLIBC_2.2 _Exit F
 GLIBC_2.2 _IO_2_1_stderr_ D 0x98
 GLIBC_2.2 _IO_2_1_stdin_ D 0x98
 GLIBC_2.2 _IO_2_1_stdout_ D 0x98
-GLIBC_2.2 _IO_adjust_column F
-GLIBC_2.2 _IO_adjust_wcolumn F
 GLIBC_2.2 _IO_default_doallocate F
 GLIBC_2.2 _IO_default_finish F
 GLIBC_2.2 _IO_default_pbackfail F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 6df55eb765..a0720ee461 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1872,7 +1872,6 @@  GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
-GLIBC_2.2 _IO_adjust_wcolumn F
 GLIBC_2.2 _IO_fgetpos F
 GLIBC_2.2 _IO_fgetpos64 F
 GLIBC_2.2 _IO_free_wbackup_area F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index b90569d881..f7636b95b0 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -134,8 +134,6 @@  GLIBC_2.2 _Exit F
 GLIBC_2.2 _IO_2_1_stderr_ D 0xe0
 GLIBC_2.2 _IO_2_1_stdin_ D 0xe0
 GLIBC_2.2 _IO_2_1_stdout_ D 0xe0
-GLIBC_2.2 _IO_adjust_column F
-GLIBC_2.2 _IO_adjust_wcolumn F
 GLIBC_2.2 _IO_default_doallocate F
 GLIBC_2.2 _IO_default_finish F
 GLIBC_2.2 _IO_default_pbackfail F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index e88b0f101f..5375dd7b7b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -85,8 +85,6 @@  GLIBC_2.2.5 _Exit F
 GLIBC_2.2.5 _IO_2_1_stderr_ D 0xe0
 GLIBC_2.2.5 _IO_2_1_stdin_ D 0xe0
 GLIBC_2.2.5 _IO_2_1_stdout_ D 0xe0
-GLIBC_2.2.5 _IO_adjust_column F
-GLIBC_2.2.5 _IO_adjust_wcolumn F
 GLIBC_2.2.5 _IO_default_doallocate F
 GLIBC_2.2.5 _IO_default_finish F
 GLIBC_2.2.5 _IO_default_pbackfail F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index e0755272eb..26659ea1ac 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -2,8 +2,6 @@  GLIBC_2.16 _Exit F
 GLIBC_2.16 _IO_2_1_stderr_ D 0xa0
 GLIBC_2.16 _IO_2_1_stdin_ D 0xa0
 GLIBC_2.16 _IO_2_1_stdout_ D 0xa0
-GLIBC_2.16 _IO_adjust_column F
-GLIBC_2.16 _IO_adjust_wcolumn F
 GLIBC_2.16 _IO_default_doallocate F
 GLIBC_2.16 _IO_default_finish F
 GLIBC_2.16 _IO_default_pbackfail F