diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 745ab7b..218fc1d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,18 @@
 2016-11-26  Simon Marchi  <simon.marchi@polymtl.ca>
 
+	* ui-out.c (_initialize_ui_out): Remove.
+	(ui_out_set_flags): Remove.
+	(ui_out_clear_flags): Remove.
+	* ui-out.h (ui_out_begin_cleanup_end): Remove.
+	(ui_out_begin_cleanup_end): Remove.
+	(ui_out_set_flags): Remove.
+	(ui_out_clear_flags): Remove.
+	* mi/mi-out.c (_initialize_mi_out): Remove.
+	(mi_out_buffered): Remove.
+	* mi/mi-out.h (mi_out_buffered): Remove.
+
+2016-11-26  Simon Marchi  <simon.marchi@polymtl.ca>
+
 	* ui-out.h (struct ui_out_impl): Remove comment.
 	* ui-out.c (struct ui_out): Remove comment.
 
diff --git a/gdb/mi/mi-out.c b/gdb/mi/mi-out.c
index 9513267..491caf5 100644
--- a/gdb/mi/mi-out.c
+++ b/gdb/mi/mi-out.c
@@ -95,7 +95,6 @@
 
 /* Prototypes for local functions */
 
-extern void _initialize_mi_out (void);
 static void field_separator (struct ui_out *uiout);
 static void mi_open (struct ui_out *uiout, const char *name,
 		     enum ui_out_type type);
@@ -360,17 +359,6 @@
   data->suppress_field_separator = 0;
 }
 
-/* Add a string to the buffer.  */
-
-void
-mi_out_buffered (struct ui_out *uiout, char *string)
-{
-  mi_out_data *data = (mi_out_data *) ui_out_data (uiout);
-  struct ui_file *stream = VEC_last (ui_filep, data->streams);
-
-  fprintf_unfiltered (stream, "%s", string);
-}
-
 /* Clear the buffer.  */
 
 void
diff --git a/gdb/mi/mi-out.h b/gdb/mi/mi-out.h
index ace93bd..ba18950 100644
--- a/gdb/mi/mi-out.h
+++ b/gdb/mi/mi-out.h
@@ -26,7 +26,6 @@
 extern struct ui_out *mi_out_new (int mi_version);
 extern void mi_out_put (struct ui_out *uiout, struct ui_file *stream);
 extern void mi_out_rewind (struct ui_out *uiout);
-extern void mi_out_buffered (struct ui_out *uiout, char *string);
 
 /* Return the version number of the current MI.  */
 extern int mi_version (struct ui_out *uiout);
diff --git a/gdb/ui-out.c b/gdb/ui-out.c
index 10f7335..528ea04 100644
--- a/gdb/ui-out.c
+++ b/gdb/ui-out.c
@@ -179,7 +179,6 @@
 
 /* Prototypes for local functions */
 
-extern void _initialize_ui_out (void);
 static void append_header_to_list (struct ui_out *uiout, int width,
 				   enum ui_align alignment, const char *col_name,
 				   const char *colhdr);
@@ -524,26 +523,6 @@
   return uo_redirect (uiout, outstream);
 }
 
-/* Set the flags specified by the mask given.  */
-int
-ui_out_set_flags (struct ui_out *uiout, int mask)
-{
-  int oldflags = uiout->flags;
-
-  uiout->flags |= mask;
-  return oldflags;
-}
-
-/* Clear the flags specified by the mask given.  */
-int
-ui_out_clear_flags (struct ui_out *uiout, int mask)
-{
-  int oldflags = uiout->flags;
-
-  uiout->flags &= ~mask;
-  return oldflags;
-}
-
 /* Test the flags against the mask given.  */
 int
 ui_out_test_flags (struct ui_out *uiout, int mask)
@@ -946,11 +925,3 @@
   clear_table (uiout);
   xfree (uiout);
 }
-
-/* Standard gdb initialization hook.  */
-
-void
-_initialize_ui_out (void)
-{
-  /* nothing needs to be done */
-}
diff --git a/gdb/ui-out.h b/gdb/ui-out.h
index a641601..936ab66 100644
--- a/gdb/ui-out.h
+++ b/gdb/ui-out.h
@@ -69,10 +69,6 @@
 
 extern void ui_out_end (struct ui_out *uiout, enum ui_out_type type);
 
-extern struct cleanup *ui_out_begin_cleanup_end (struct ui_out *uiout,
-						 enum ui_out_type level_type,
-						 const char *id);
-
 /* A table can be considered a special tuple/list combination with the
    implied structure: ``table = { hdr = { header, ... } , body = [ {
    field, ... }, ... ] }''.  If NR_ROWS is negative then there is at
@@ -131,10 +127,6 @@
 
 extern void ui_out_flush (struct ui_out *uiout);
 
-extern int ui_out_set_flags (struct ui_out *uiout, int mask);
-
-extern int ui_out_clear_flags (struct ui_out *uiout, int mask);
-
 extern int ui_out_get_verblvl (struct ui_out *uiout);
 
 extern int ui_out_test_flags (struct ui_out *uiout, int mask);
