diff --git a/iconv/gconv.c b/iconv/gconv.c
index 0aab0546b9..3531752189 100644
--- a/iconv/gconv.c
+++ b/iconv/gconv.c
@@ -28,7 +28,6 @@
 
 
 int
-internal_function
 __gconv (__gconv_t cd, const unsigned char **inbuf,
 	 const unsigned char *inbufend, unsigned char **outbuf,
 	 unsigned char *outbufend, size_t *irreversible)
diff --git a/iconv/gconv_builtin.c b/iconv/gconv_builtin.c
index 111233dab5..dbcd04b27f 100644
--- a/iconv/gconv_builtin.c
+++ b/iconv/gconv_builtin.c
@@ -59,7 +59,6 @@ static const struct builtin_map
 
 
 void
-internal_function
 __gconv_get_builtin_trans (const char *name, struct __gconv_step *step)
 {
   size_t cnt;
diff --git a/iconv/gconv_cache.c b/iconv/gconv_cache.c
index 7d2751a506..07445788a4 100644
--- a/iconv/gconv_cache.c
+++ b/iconv/gconv_cache.c
@@ -45,7 +45,6 @@ __gconv_get_cache (void)
 
 
 int
-internal_function
 __gconv_load_cache (void)
 {
   int fd;
@@ -142,7 +141,6 @@ __gconv_load_cache (void)
 
 
 static int
-internal_function
 find_module_idx (const char *str, size_t *idxp)
 {
   unsigned int idx;
@@ -181,7 +179,6 @@ find_module_idx (const char *str, size_t *idxp)
 
 #ifndef STATIC_GCONV
 static int
-internal_function
 find_module (const char *directory, const char *filename,
 	     struct __gconv_step *result)
 {
@@ -227,7 +224,6 @@ find_module (const char *directory, const char *filename,
 
 
 int
-internal_function
 __gconv_compare_alias_cache (const char *name1, const char *name2, int *result)
 {
   size_t name1_idx;
@@ -247,7 +243,6 @@ __gconv_compare_alias_cache (const char *name1, const char *name2, int *result)
 
 
 int
-internal_function
 __gconv_lookup_cache (const char *toset, const char *fromset,
 		      struct __gconv_step **handle, size_t *nsteps, int flags)
 {
@@ -449,7 +444,6 @@ __gconv_lookup_cache (const char *toset, const char *fromset,
 
 /* Free memory allocated for the transformation record.  */
 void
-internal_function
 __gconv_release_cache (struct __gconv_step *steps, size_t nsteps)
 {
   if (gconv_cache != NULL)
diff --git a/iconv/gconv_close.c b/iconv/gconv_close.c
index 4853dd8779..3a908ee8f1 100644
--- a/iconv/gconv_close.c
+++ b/iconv/gconv_close.c
@@ -23,7 +23,6 @@
 
 
 int
-internal_function
 __gconv_close (__gconv_t cd)
 {
   struct __gconv_step *srunp;
diff --git a/iconv/gconv_conf.c b/iconv/gconv_conf.c
index 5aa055de6e..f1c28ce83a 100644
--- a/iconv/gconv_conf.c
+++ b/iconv/gconv_conf.c
@@ -99,7 +99,6 @@ const char *__gconv_path_envvar;
 
 /* Test whether there is already a matching module known.  */
 static int
-internal_function
 detect_conflict (const char *alias)
 {
   struct gconv_module *node = __gconv_modules_db;
@@ -183,7 +182,6 @@ add_alias (char *rp, void *modules)
 
 /* Insert a data structure for a new module in the search tree.  */
 static void
-internal_function
 insert_module (struct gconv_module *newp, int tobefreed)
 {
   struct gconv_module **rootp = &__gconv_modules_db;
@@ -242,7 +240,6 @@ insert_module (struct gconv_module *newp, int tobefreed)
 
 /* Add new module.  */
 static void
-internal_function
 add_module (char *rp, const char *directory, size_t dir_len, void **modules,
 	    size_t *nmodules, int modcounter)
 {
@@ -357,7 +354,6 @@ add_module (char *rp, const char *directory, size_t dir_len, void **modules,
 
 /* Read the next configuration file.  */
 static void
-internal_function
 read_conf_file (const char *filename, const char *directory, size_t dir_len,
 		void **modules, size_t *nmodules)
 {
@@ -425,7 +421,6 @@ read_conf_file (const char *filename, const char *directory, size_t dir_len,
 
 /* Determine the directories we are looking for data in.  */
 void
-internal_function
 __gconv_get_path (void)
 {
   struct path_elem *result;
diff --git a/iconv/gconv_db.c b/iconv/gconv_db.c
index 96f087192e..8fcb3cd92b 100644
--- a/iconv/gconv_db.c
+++ b/iconv/gconv_db.c
@@ -121,7 +121,6 @@ static void *known_derivations;
 
 /* Look up whether given transformation was already requested before.  */
 static int
-internal_function
 derivation_lookup (const char *fromset, const char *toset,
 		   struct __gconv_step **handle, size_t *nsteps)
 {
@@ -143,7 +142,6 @@ derivation_lookup (const char *fromset, const char *toset,
 
 /* Add new derivation to list of known ones.  */
 static void
-internal_function
 add_derivation (const char *fromset, const char *toset,
 		struct __gconv_step *handle, size_t nsteps)
 {
@@ -204,7 +202,6 @@ free_derivation (void *p)
 
 /* Decrement the reference count for a single step in a steps array.  */
 void
-internal_function
 __gconv_release_step (struct __gconv_step *step)
 {
   /* Skip builtin modules; they are not reference counted.  */
@@ -230,7 +227,6 @@ __gconv_release_step (struct __gconv_step *step)
 }
 
 static int
-internal_function
 gen_steps (struct derivation_step *best, const char *toset,
 	   const char *fromset, struct __gconv_step **handle, size_t *nsteps)
 {
@@ -370,7 +366,6 @@ gen_steps (struct derivation_step *best, const char *toset,
 
 #ifndef STATIC_GCONV
 static int
-internal_function
 increment_counter (struct __gconv_step *steps, size_t nsteps)
 {
   /* Increment the user counter.  */
@@ -430,7 +425,6 @@ increment_counter (struct __gconv_step *steps, size_t nsteps)
 /* The main function: find a possible derivation from the `fromset' (either
    the given name or the alias) to the `toset' (again with alias).  */
 static int
-internal_function
 find_derivation (const char *toset, const char *toset_expand,
 		 const char *fromset, const char *fromset_expand,
 		 struct __gconv_step **handle, size_t *nsteps)
@@ -710,7 +704,6 @@ do_lookup_alias (const char *name)
 
 
 int
-internal_function
 __gconv_compare_alias (const char *name1, const char *name2)
 {
   int result;
@@ -727,7 +720,6 @@ __gconv_compare_alias (const char *name1, const char *name2)
 
 
 int
-internal_function
 __gconv_find_transform (const char *toset, const char *fromset,
 			struct __gconv_step **handle, size_t *nsteps,
 			int flags)
@@ -793,7 +785,6 @@ __gconv_find_transform (const char *toset, const char *fromset,
 
 /* Release the entries of the modules list.  */
 int
-internal_function
 __gconv_close_transform (struct __gconv_step *steps, size_t nsteps)
 {
   int result = __GCONV_OK;
@@ -822,7 +813,7 @@ __gconv_close_transform (struct __gconv_step *steps, size_t nsteps)
 
 /* Free the modules mentioned.  */
 static void
-internal_function __libc_freeres_fn_section
+__libc_freeres_fn_section
 free_modules_db (struct gconv_module *node)
 {
   if (node->left != NULL)
diff --git a/iconv/gconv_dl.c b/iconv/gconv_dl.c
index d7dbba90a2..5feb88cac0 100644
--- a/iconv/gconv_dl.c
+++ b/iconv/gconv_dl.c
@@ -64,7 +64,6 @@ known_compare (const void *p1, const void *p2)
 /* Open the gconv database if necessary.  A non-negative return value
    means success.  */
 struct __gconv_loaded_object *
-internal_function
 __gconv_find_shlib (const char *name)
 {
   struct __gconv_loaded_object *found;
@@ -183,7 +182,6 @@ do_release_shlib (void *nodep, VISIT value, int level)
 
 /* Notify system that a shared object is not longer needed.  */
 void
-internal_function
 __gconv_release_shlib (struct __gconv_loaded_object *handle)
 {
   /* Urgh, this is ugly but we have no other possibility.  */
diff --git a/iconv/gconv_int.h b/iconv/gconv_int.h
index 85a67ad31b..b1433f801e 100644
--- a/iconv/gconv_int.h
+++ b/iconv/gconv_int.h
@@ -156,12 +156,10 @@ __libc_lock_define (extern, __gconv_lock attribute_hidden)
 
 /* Return in *HANDLE decriptor for transformation from FROMSET to TOSET.  */
 extern int __gconv_open (const char *toset, const char *fromset,
-			 __gconv_t *handle, int flags)
-     internal_function;
+			 __gconv_t *handle, int flags);
 
 /* Free resources associated with transformation descriptor CD.  */
-extern int __gconv_close (__gconv_t cd)
-     internal_function;
+extern int __gconv_close (__gconv_t cd);
 
 /* Transform at most *INBYTESLEFT bytes from buffer starting at *INBUF
    according to rules described by CD and place up to *OUTBYTESLEFT
@@ -169,37 +167,33 @@ extern int __gconv_close (__gconv_t cd)
    conversions in *IRREVERSIBLE if this pointer is not null.  */
 extern int __gconv (__gconv_t cd, const unsigned char **inbuf,
 		    const unsigned char *inbufend, unsigned char **outbuf,
-		    unsigned char *outbufend, size_t *irreversible)
-     internal_function;
+		    unsigned char *outbufend, size_t *irreversible);
 
 /* Return in *HANDLE a pointer to an array with *NSTEPS elements describing
    the single steps necessary for transformation from FROMSET to TOSET.  */
 extern int __gconv_find_transform (const char *toset, const char *fromset,
 				   struct __gconv_step **handle,
-				   size_t *nsteps, int flags)
-     internal_function;
+				   size_t *nsteps, int flags);
 
 /* Search for transformation in cache data.  */
 extern int __gconv_lookup_cache (const char *toset, const char *fromset,
 				 struct __gconv_step **handle, size_t *nsteps,
-				 int flags)
-     internal_function;
+				 int flags);
 
 /* Compare the two name for whether they are after alias expansion the
    same.  This function uses the cache and fails if none is
    loaded.  */
 extern int __gconv_compare_alias_cache (const char *name1, const char *name2,
-					int *result) internal_function;
+					int *result);
 
 /* Free data associated with a step's structure.  */
-extern void __gconv_release_step (struct __gconv_step *step)
-     internal_function;
+extern void __gconv_release_step (struct __gconv_step *step);
 
 /* Read all the configuration data and cache it.  */
 extern void __gconv_read_conf (void) attribute_hidden;
 
 /* Try to read module cache file.  */
-extern int __gconv_load_cache (void) internal_function;
+extern int __gconv_load_cache (void);
 
 /* Retrieve pointer to internal cache.  */
 extern void *__gconv_get_cache (void);
@@ -211,7 +205,7 @@ extern struct gconv_module *__gconv_get_modules_db (void);
 extern void *__gconv_get_alias_db (void);
 
 /* Determine the directories we are looking in.  */
-extern void __gconv_get_path (void) internal_function;
+extern void __gconv_get_path (void);
 
 /* Comparison function to search alias.  */
 extern int __gconv_alias_compare (const void *p1, const void *p2)
@@ -220,34 +214,28 @@ extern int __gconv_alias_compare (const void *p1, const void *p2)
 /* Clear reference to transformation step implementations which might
    cause the code to be unloaded.  */
 extern int __gconv_close_transform (struct __gconv_step *steps,
-				    size_t nsteps)
-     internal_function;
+				    size_t nsteps);
 
 /* Free all resources allocated for the transformation record when
    using the cache.  */
-extern void __gconv_release_cache (struct __gconv_step *steps, size_t nsteps)
-     internal_function;
+extern void __gconv_release_cache (struct __gconv_step *steps, size_t nsteps);
 
 /* Load shared object named by NAME.  If already loaded increment reference
    count.  */
-extern struct __gconv_loaded_object *__gconv_find_shlib (const char *name)
-     internal_function;
+extern struct __gconv_loaded_object *__gconv_find_shlib (const char *name);
 
 /* Release shared object.  If no further reference is available unload
    the object.  */
-extern void __gconv_release_shlib (struct __gconv_loaded_object *handle)
-     internal_function;
+extern void __gconv_release_shlib (struct __gconv_loaded_object *handle);
 
 /* Fill STEP with information about builtin module with NAME.  */
 extern void __gconv_get_builtin_trans (const char *name,
-				       struct __gconv_step *step)
-     internal_function;
+				       struct __gconv_step *step);
 
 libc_hidden_proto (__gconv_transliterate)
 
 /* If NAME is an codeset alias expand it.  */
-extern int __gconv_compare_alias (const char *name1, const char *name2)
-     internal_function;
+extern int __gconv_compare_alias (const char *name1, const char *name2);
 
 
 /* Builtin transformations.  */
diff --git a/iconv/gconv_open.c b/iconv/gconv_open.c
index ff4fd121eb..d349527808 100644
--- a/iconv/gconv_open.c
+++ b/iconv/gconv_open.c
@@ -27,7 +27,6 @@
 
 
 int
-internal_function
 __gconv_open (const char *toset, const char *fromset, __gconv_t *handle,
 	      int flags)
 {
diff --git a/iconv/iconv_prog.c b/iconv/iconv_prog.c
index 1397d2e9bd..35d6eb3646 100644
--- a/iconv/iconv_prog.c
+++ b/iconv/iconv_prog.c
@@ -113,7 +113,7 @@ static int process_fd (iconv_t cd, int fd, FILE **output,
 		       const char *output_file);
 static int process_file (iconv_t cd, FILE *input, FILE **output,
 			 const char *output_file);
-static void print_known_names (void) internal_function;
+static void print_known_names (void);
 
 
 int
@@ -712,7 +712,6 @@ do_print  (const void *nodep, VISIT value, int level)
 }
 
 static void
-internal_function
 add_known_names (struct gconv_module *node)
 {
   if (node->left != NULL)
@@ -756,7 +755,6 @@ insert_cache (void)
 
 
 static void
-internal_function
 print_known_names (void)
 {
   iconv_t h;
diff --git a/iconv/iconvconfig.c b/iconv/iconvconfig.c
index 9be4111a42..9e5e7af87d 100644
--- a/iconv/iconvconfig.c
+++ b/iconv/iconvconfig.c
@@ -566,7 +566,6 @@ new_module (const char *fromname, size_t fromlen, const char *toname,
 
 /* Add new module.  */
 static void
-internal_function
 add_module (char *rp, const char *directory)
 {
   /* We expect now
diff --git a/intl/dcigettext.c b/intl/dcigettext.c
index f63b34b0f5..80750f34ab 100644
--- a/intl/dcigettext.c
+++ b/intl/dcigettext.c
@@ -347,18 +347,15 @@ struct binding *_nl_domain_bindings;
 /* Prototypes for local functions.  */
 static char *plural_lookup (struct loaded_l10nfile *domain,
 			    unsigned long int n,
-			    const char *translation, size_t translation_len)
-     internal_function;
+			    const char *translation, size_t translation_len);
 
 #ifdef IN_LIBGLOCALE
 static const char *guess_category_value (int category,
 					 const char *categoryname,
-					 const char *localename)
-     internal_function;
+					 const char *localename);
 #else
 static const char *guess_category_value (int category,
-					 const char *categoryname)
-     internal_function;
+					 const char *categoryname);
 #endif
 
 #ifdef _LIBC
@@ -366,11 +363,10 @@ static const char *guess_category_value (int category,
 # define category_to_name(category) \
   _nl_category_names.str + _nl_category_name_idxs[category]
 #else
-static const char *category_to_name (int category) internal_function;
+static const char *category_to_name (int category);
 #endif
 #if (defined _LIBC || HAVE_ICONV) && !defined IN_LIBGLOCALE
-static const char *get_output_charset (struct binding *domainbinding)
-     internal_function;
+static const char *get_output_charset (struct binding *domainbinding);
 #endif
 
 
@@ -868,7 +864,6 @@ DCIGETTEXT (const char *domainname, const char *msgid1, const char *msgid2,
    in case of a memory allocation failure during conversion (only if
    ENCODING != NULL resp. CONVERT == true).  */
 char *
-internal_function
 #ifdef IN_LIBGLOCALE
 _nl_find_msg (struct loaded_l10nfile *domain_file,
 	      struct binding *domainbinding, const char *encoding,
@@ -1401,7 +1396,6 @@ _nl_find_msg (struct loaded_l10nfile *domain_file,
 
 /* Look up a plural variant.  */
 static char *
-internal_function
 plural_lookup (struct loaded_l10nfile *domain, unsigned long int n,
 	       const char *translation, size_t translation_len)
 {
@@ -1439,7 +1433,6 @@ plural_lookup (struct loaded_l10nfile *domain, unsigned long int n,
 #ifndef _LIBC
 /* Return string representation of locale CATEGORY.  */
 static const char *
-internal_function
 category_to_name (int category)
 {
   const char *retval;
@@ -1500,7 +1493,6 @@ category_to_name (int category)
 /* Guess value of current locale from value of the environment variables
    or system-dependent defaults.  */
 static const char *
-internal_function
 #ifdef IN_LIBGLOCALE
 guess_category_value (int category, const char *categoryname,
 		      const char *locale)
@@ -1591,7 +1583,6 @@ guess_category_value (int category, const char *categoryname)
 #if (defined _LIBC || HAVE_ICONV) && !defined IN_LIBGLOCALE
 /* Returns the output charset.  */
 static const char *
-internal_function
 get_output_charset (struct binding *domainbinding)
 {
   /* The output charset should normally be determined by the locale.  But
diff --git a/intl/eval-plural.h b/intl/eval-plural.h
index 664b809c2f..4bc6f445e7 100644
--- a/intl/eval-plural.h
+++ b/intl/eval-plural.h
@@ -21,7 +21,6 @@
 /* Evaluate the plural expression and return an index value.  */
 STATIC
 unsigned long int
-internal_function
 plural_eval (const struct expression *pexp, unsigned long int n)
 {
   switch (pexp->nargs)
diff --git a/intl/finddomain.c b/intl/finddomain.c
index 88fd880dbc..78718b3fac 100644
--- a/intl/finddomain.c
+++ b/intl/finddomain.c
@@ -55,7 +55,6 @@ static struct loaded_l10nfile *_nl_loaded_domains;
    the DOMAINNAME and CATEGORY parameters with respect to the currently
    established bindings.  */
 struct loaded_l10nfile *
-internal_function
 _nl_find_domain (const char *dirname, char *locale,
 		 const char *domainname, struct binding *domainbinding)
 {
diff --git a/intl/gettextP.h b/intl/gettextP.h
index eeb8970852..8fcfb5bef8 100644
--- a/intl/gettextP.h
+++ b/intl/gettextP.h
@@ -61,7 +61,7 @@ extern char *__bind_textdomain_codeset (const char *__domainname,
 					const char *__codeset);
 extern void _nl_finddomain_subfreeres (void) attribute_hidden;
 extern void _nl_unload_domain (struct loaded_domain *__domain)
-     internal_function attribute_hidden;
+     attribute_hidden;
 #else
 /* Declare the exported libintl_* functions, in a way that allows us to
    call them under their real name.  */
@@ -89,10 +89,6 @@ extern char *libintl_dcigettext (const char *__domainname,
 
 /* @@ end of prolog @@ */
 
-#ifndef internal_function
-# define internal_function
-#endif
-
 #ifndef attribute_hidden
 # define attribute_hidden
 #endif
@@ -255,23 +251,19 @@ extern const char *_nl_locale_name_default (void);
 
 struct loaded_l10nfile *_nl_find_domain (const char *__dirname, char *__locale,
 					 const char *__domainname,
-					 struct binding *__domainbinding)
-     internal_function;
+					 struct binding *__domainbinding);
 void _nl_load_domain (struct loaded_l10nfile *__domain,
-		      struct binding *__domainbinding)
-     internal_function;
+		      struct binding *__domainbinding);
 
 #ifdef IN_LIBGLOCALE
 char *_nl_find_msg (struct loaded_l10nfile *domain_file,
 		    struct binding *domainbinding, const char *encoding,
 		    const char *msgid,
-		    size_t *lengthp)
-     internal_function;
+		    size_t *lengthp);
 #else
 char *_nl_find_msg (struct loaded_l10nfile *domain_file,
 		    struct binding *domainbinding, const char *msgid,
-		    int convert, size_t *lengthp)
-     internal_function;
+		    int convert, size_t *lengthp);
 #endif
 
 /* The internal variables in the standalone libintl.a must have different
diff --git a/intl/loadinfo.h b/intl/loadinfo.h
index 602ee8213f..38dbc31f43 100644
--- a/intl/loadinfo.h
+++ b/intl/loadinfo.h
@@ -30,10 +30,6 @@
    in gettextP.h.
  */
 
-#ifndef internal_function
-# define internal_function
-#endif
-
 #ifndef LIBINTL_DLL_EXPORTED
 # define LIBINTL_DLL_EXPORTED
 #endif
diff --git a/intl/loadmsgcat.c b/intl/loadmsgcat.c
index 13e2f2a573..e8b2314225 100644
--- a/intl/loadmsgcat.c
+++ b/intl/loadmsgcat.c
@@ -749,7 +749,6 @@ get_sysdep_segment_value (const char *name)
 /* Load the message catalogs specified by FILENAME.  If it is no valid
    message catalog do nothing.  */
 void
-internal_function
 _nl_load_domain (struct loaded_l10nfile *domain_file,
 		 struct binding *domainbinding)
 {
@@ -1285,7 +1284,7 @@ _nl_load_domain (struct loaded_l10nfile *domain_file,
 
 #ifdef _LIBC
 void
-internal_function __libc_freeres_fn_section
+__libc_freeres_fn_section
 _nl_unload_domain (struct loaded_domain *domain)
 {
   size_t i;
diff --git a/intl/localealias.c b/intl/localealias.c
index 9921aa2825..08662f78cc 100644
--- a/intl/localealias.c
+++ b/intl/localealias.c
@@ -88,10 +88,6 @@ char *alloca ();
 # include "lock.h"
 #endif
 
-#ifndef internal_function
-# define internal_function
-#endif
-
 /* Some optimizations for glibc.  */
 #ifdef _LIBC
 # define FEOF(fp)		feof_unlocked (fp)
@@ -143,8 +139,7 @@ static size_t maxmap;
 
 
 /* Prototypes for local functions.  */
-static size_t read_alias_file (const char *fname, int fname_len)
-     internal_function;
+static size_t read_alias_file (const char *fname, int fname_len);
 static int extend_alias_table (void);
 static int alias_compare (const struct alias_map *map1,
 			  const struct alias_map *map2);
@@ -212,7 +207,6 @@ _nl_expand_alias (const char *name)
 
 
 static size_t
-internal_function
 read_alias_file (const char *fname, int fname_len)
 {
   FILE *fp;
diff --git a/intl/plural-exp.c b/intl/plural-exp.c
index f3a45fa92e..8c15032631 100644
--- a/intl/plural-exp.c
+++ b/intl/plural-exp.c
@@ -94,7 +94,6 @@ init_germanic_plural (void)
 #endif
 
 void
-internal_function
 EXTRACT_PLURAL_EXPRESSION (const char *nullentry,
 			   const struct expression **pluralp,
 			   unsigned long int *npluralsp)
diff --git a/intl/plural-exp.h b/intl/plural-exp.h
index 144aa1ed4b..4833fcdf35 100644
--- a/intl/plural-exp.h
+++ b/intl/plural-exp.h
@@ -18,10 +18,6 @@
 #ifndef _PLURAL_EXP_H
 #define _PLURAL_EXP_H
 
-#ifndef internal_function
-# define internal_function
-#endif
-
 #ifndef attribute_hidden
 # define attribute_hidden
 #endif
@@ -105,14 +101,12 @@ struct parse_args
 # define EXTRACT_PLURAL_EXPRESSION extract_plural_expression
 #endif
 
-extern void FREE_EXPRESSION (struct expression *exp)
-     internal_function;
+extern void FREE_EXPRESSION (struct expression *exp);
 extern int PLURAL_PARSE (struct parse_args *arg);
 extern const struct expression GERMANIC_PLURAL attribute_hidden;
 extern void EXTRACT_PLURAL_EXPRESSION (const char *nullentry,
 				       const struct expression **pluralp,
-				       unsigned long int *npluralsp)
-     internal_function;
+				       unsigned long int *npluralsp);
 
 #if !defined (_LIBC) && !defined (IN_LIBINTL) && !defined (IN_LIBGLOCALE)
 extern unsigned long int plural_eval (const struct expression *pexp,
diff --git a/intl/plural.c b/intl/plural.c
index c2aa7d7d02..73a71633f1 100644
--- a/intl/plural.c
+++ b/intl/plural.c
@@ -1836,7 +1836,6 @@ yyreturn:
 
 
 void
-internal_function
 FREE_EXPRESSION (struct expression *exp)
 {
   if (exp == NULL)
diff --git a/intl/plural.y b/intl/plural.y
index 5f945659d5..78a7453f4c 100644
--- a/intl/plural.y
+++ b/intl/plural.y
@@ -207,7 +207,6 @@ exp:	  exp '?' exp ':' exp
 %%
 
 void
-internal_function
 FREE_EXPRESSION (struct expression *exp)
 {
   if (exp == NULL)
diff --git a/locale/coll-lookup.c b/locale/coll-lookup.c
index a4deb9c0da..349265f041 100644
--- a/locale/coll-lookup.c
+++ b/locale/coll-lookup.c
@@ -20,7 +20,6 @@
 
 /* Lookup in a table of int32_t, with default value 0.  */
 int32_t
-internal_function
 __collidx_table_lookup (const char *table, uint32_t wc)
 {
   uint32_t shift1 = ((const uint32_t *) table)[0];
@@ -51,7 +50,6 @@ __collidx_table_lookup (const char *table, uint32_t wc)
 
 /* Lookup in a table of uint32_t, with default value 0xffffffff.  */
 uint32_t
-internal_function
 __collseq_table_lookup (const char *table, uint32_t wc)
 {
   uint32_t shift1 = ((const uint32_t *) table)[0];
diff --git a/locale/coll-lookup.h b/locale/coll-lookup.h
index d95408ad68..d1c488dcf5 100644
--- a/locale/coll-lookup.h
+++ b/locale/coll-lookup.h
@@ -19,9 +19,7 @@
 #include <stdint.h>
 
 /* Lookup in a table of int32_t, with default value 0.  */
-extern int32_t __collidx_table_lookup (const char *table, uint32_t wc)
-     internal_function;
+extern int32_t __collidx_table_lookup (const char *table, uint32_t wc);
 
 /* Lookup in a table of uint32_t, with default value 0xffffffff.  */
-extern uint32_t __collseq_table_lookup (const char *table, uint32_t wc)
-     internal_function;
+extern uint32_t __collseq_table_lookup (const char *table, uint32_t wc);
diff --git a/locale/findlocale.c b/locale/findlocale.c
index 02a97ac654..60029604d5 100644
--- a/locale/findlocale.c
+++ b/locale/findlocale.c
@@ -99,7 +99,6 @@ valid_locale_name (const char *name)
 }
 
 struct __locale_data *
-internal_function
 _nl_find_locale (const char *locale_path, size_t locale_path_len,
 		 int category, const char **name)
 {
@@ -332,7 +331,6 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len,
 /* Calling this function assumes the lock for handling global locale data
    is acquired.  */
 void
-internal_function
 _nl_remove_locale (int locale, struct __locale_data *data)
 {
   if (--data->usage_count == 0)
diff --git a/locale/loadarchive.c b/locale/loadarchive.c
index 158cf14af8..ebbac6ad65 100644
--- a/locale/loadarchive.c
+++ b/locale/loadarchive.c
@@ -130,7 +130,6 @@ calculate_head_size (const struct locarhead *h)
    structure.  If successful, sets *NAMEP to point directly into the mapped
    archive string table; that way, the next call can short-circuit strcmp.  */
 struct __locale_data *
-internal_function
 _nl_load_locale_from_archive (int category, const char **namep)
 {
   const char *name = *namep;
diff --git a/locale/loadlocale.c b/locale/loadlocale.c
index 24ad671ead..2bdb39b4b8 100644
--- a/locale/loadlocale.c
+++ b/locale/loadlocale.c
@@ -61,7 +61,6 @@ static const enum value_type *const _nl_value_types[] =
 
 
 struct __locale_data *
-internal_function
 _nl_intern_locale_data (int category, const void *data, size_t datasize)
 {
   const struct
@@ -160,7 +159,6 @@ _nl_intern_locale_data (int category, const void *data, size_t datasize)
 }
 
 void
-internal_function
 _nl_load_locale (struct loaded_l10nfile *file, int category)
 {
   int fd;
@@ -282,7 +280,6 @@ _nl_load_locale (struct loaded_l10nfile *file, int category)
 }
 
 void
-internal_function
 _nl_unload_locale (struct __locale_data *locale)
 {
   if (locale->private.cleanup)
diff --git a/locale/localeinfo.h b/locale/localeinfo.h
index 4e1c8c568a..06f01d90de 100644
--- a/locale/localeinfo.h
+++ b/locale/localeinfo.h
@@ -63,7 +63,7 @@ struct __locale_data
      the data.  */
   struct
   {
-    void (*cleanup) (struct __locale_data *) internal_function;
+    void (*cleanup) (struct __locale_data *);
     union
     {
       void *data;
@@ -336,19 +336,18 @@ extern const char _nl_default_locale_path[] attribute_hidden;
 extern struct __locale_data *_nl_find_locale (const char *locale_path,
 					      size_t locale_path_len,
 					      int category, const char **name)
-     internal_function attribute_hidden;
+     attribute_hidden;
 
 /* Try to load the file described by FILE.  */
 extern void _nl_load_locale (struct loaded_l10nfile *file, int category)
-     internal_function attribute_hidden;
+     attribute_hidden;
 
 /* Free all resource.  */
-extern void _nl_unload_locale (struct __locale_data *locale)
-     internal_function attribute_hidden;
+extern void _nl_unload_locale (struct __locale_data *locale) attribute_hidden;
 
 /* Free the locale and give back all memory if the usage count is one.  */
 extern void _nl_remove_locale (int locale, struct __locale_data *data)
-     internal_function attribute_hidden;
+     attribute_hidden;
 
 /* Find the locale *NAMEP in the locale archive, and return the
    internalized data structure for its CATEGORY data.  If this locale has
@@ -357,7 +356,7 @@ extern void _nl_remove_locale (int locale, struct __locale_data *data)
    archive string table; that way, the next call can short-circuit strcmp.  */
 extern struct __locale_data *_nl_load_locale_from_archive (int category,
 							   const char **namep)
-     internal_function attribute_hidden;
+     attribute_hidden;
 
 /* Subroutine of setlocale's __libc_subfreeres hook.  */
 extern void _nl_archive_subfreeres (void) attribute_hidden;
@@ -373,40 +372,39 @@ extern void _nl_locale_subfreeres (void) attribute_hidden;
 extern struct __locale_data *_nl_intern_locale_data (int category,
 						     const void *data,
 						     size_t datasize)
-     internal_function attribute_hidden;
+     attribute_hidden;
 
 
 /* Return `era' entry which corresponds to TP.  Used in strftime.  */
 extern struct era_entry *_nl_get_era_entry (const struct tm *tp,
 					    struct __locale_data *lc_time)
-     internal_function attribute_hidden;
+     attribute_hidden;
 
 /* Return `era' cnt'th entry .  Used in strptime.  */
 extern struct era_entry *_nl_select_era_entry (int cnt,
 					       struct __locale_data *lc_time)
-	  internal_function attribute_hidden;
+	  attribute_hidden;
 
 /* Return `alt_digit' which corresponds to NUMBER.  Used in strftime.  */
 extern const char *_nl_get_alt_digit (unsigned int number,
 				      struct __locale_data *lc_time)
-	  internal_function attribute_hidden;
+	  attribute_hidden;
 
 /* Similar, but now for wide characters.  */
 extern const wchar_t *_nl_get_walt_digit (unsigned int number,
 					  struct __locale_data *lc_time)
-     internal_function attribute_hidden;
+     attribute_hidden;
 
 /* Parse string as alternative digit and return numeric value.  */
 extern int _nl_parse_alt_digit (const char **strp,
 				struct __locale_data *lc_time)
-     internal_function attribute_hidden;
+     attribute_hidden;
 
 /* Postload processing.  */
 extern void _nl_postload_ctype (void);
 
 /* Functions used for the `private.cleanup' hook.  */
-extern void _nl_cleanup_time (struct __locale_data *)
-     internal_function attribute_hidden;
+extern void _nl_cleanup_time (struct __locale_data *) attribute_hidden;
 
 
 #endif	/* localeinfo.h */
diff --git a/time/alt_digit.c b/time/alt_digit.c
index e3bcea4414..7047fa3415 100644
--- a/time/alt_digit.c
+++ b/time/alt_digit.c
@@ -69,7 +69,6 @@ _nl_init_alt_digit (struct __locale_data *current)
 }
 
 const char *
-internal_function
 _nl_get_alt_digit (unsigned int number, struct __locale_data *current)
 {
   const char *result;
@@ -95,7 +94,6 @@ _nl_get_alt_digit (unsigned int number, struct __locale_data *current)
 
 
 const wchar_t *
-internal_function
 _nl_get_walt_digit (unsigned int number, struct __locale_data *current)
 {
   const wchar_t *result = NULL;
@@ -148,7 +146,6 @@ _nl_get_walt_digit (unsigned int number, struct __locale_data *current)
 
 
 int
-internal_function
 _nl_parse_alt_digit (const char **strp, struct __locale_data *current)
 {
   const char *str = *strp;
diff --git a/time/era.c b/time/era.c
index b5743c621a..934844de31 100644
--- a/time/era.c
+++ b/time/era.c
@@ -35,7 +35,7 @@ __libc_rwlock_define (extern, __libc_setlocale_lock attribute_hidden)
 
 /* Look up the era information in CURRENT's locale strings and
    cache it in CURRENT->private.  */
-static void internal_function
+static void
 _nl_init_era_entries (struct __locale_data *current)
 {
   size_t cnt;
@@ -139,7 +139,6 @@ _nl_init_era_entries (struct __locale_data *current)
 }
 
 struct era_entry *
-internal_function
 _nl_get_era_entry (const struct tm *tp, struct __locale_data *current)
 {
   if (current->private.time == NULL || !current->private.time->era_initialized)
@@ -166,7 +165,6 @@ _nl_get_era_entry (const struct tm *tp, struct __locale_data *current)
 
 
 struct era_entry *
-internal_function
 _nl_select_era_entry (int cnt, struct __locale_data *current)
 {
   if (current->private.time == NULL || !current->private.time->era_initialized)
diff --git a/time/lc-time-cleanup.c b/time/lc-time-cleanup.c
index 92b5be5818..9db9232575 100644
--- a/time/lc-time-cleanup.c
+++ b/time/lc-time-cleanup.c
@@ -19,7 +19,7 @@
 #include "../locale/localeinfo.h"
 #include <stdlib.h>
 
-void internal_function
+void
 _nl_cleanup_time (struct __locale_data *locale)
 {
   struct lc_time_data *const data = locale->private.time;
diff --git a/wcsmbs/wcsmbsload.c b/wcsmbs/wcsmbsload.c
index 656cc0a8e8..ccafc11222 100644
--- a/wcsmbs/wcsmbsload.c
+++ b/wcsmbs/wcsmbsload.c
@@ -148,7 +148,6 @@ __libc_rwlock_define (extern, __libc_setlocale_lock attribute_hidden)
 
 /* Load conversion functions for the currently selected locale.  */
 void
-internal_function
 __wcsmbs_load_conv (struct __locale_data *new_category)
 {
   /* Acquire the lock.  */
@@ -215,7 +214,6 @@ __wcsmbs_load_conv (struct __locale_data *new_category)
 
 /* Clone the current conversion function set.  */
 void
-internal_function
 __wcsmbs_clone_conv (struct gconv_fcts *copy)
 {
   const struct gconv_fcts *orig;
@@ -236,7 +234,6 @@ __wcsmbs_clone_conv (struct gconv_fcts *copy)
 
 /* Get converters for named charset.  */
 int
-internal_function
 __wcsmbs_named_conv (struct gconv_fcts *copy, const char *name)
 {
   copy->towc = __wcsmbs_getfct ("INTERNAL", name, &copy->towc_nsteps);
@@ -253,7 +250,7 @@ __wcsmbs_named_conv (struct gconv_fcts *copy, const char *name)
   return 0;
 }
 
-void internal_function
+void
 _nl_cleanup_ctype (struct __locale_data *locale)
 {
   const struct gconv_fcts *const data = locale->private.ctype;
diff --git a/wcsmbs/wcsmbsload.h b/wcsmbs/wcsmbsload.h
index 3e254a877e..7efe2c1f81 100644
--- a/wcsmbs/wcsmbsload.h
+++ b/wcsmbs/wcsmbsload.h
@@ -37,20 +37,16 @@ struct gconv_fcts
 extern const struct gconv_fcts __wcsmbs_gconv_fcts_c attribute_hidden;
 
 /* Load conversion functions for the currently selected locale.  */
-extern void __wcsmbs_load_conv (struct __locale_data *new_category)
-     internal_function;
+extern void __wcsmbs_load_conv (struct __locale_data *new_category);
 
 /* Clone the current `__wcsmbs_load_conv' value.  */
-extern void __wcsmbs_clone_conv (struct gconv_fcts *copy)
-     internal_function;
+extern void __wcsmbs_clone_conv (struct gconv_fcts *copy);
 
 /* Find the conversion functions for converting to and from NAME.  */
-extern int __wcsmbs_named_conv (struct gconv_fcts *copy, const char *name)
-     internal_function;
+extern int __wcsmbs_named_conv (struct gconv_fcts *copy, const char *name);
 
 /* Function used for the `private.cleanup' hook.  */
-extern void _nl_cleanup_ctype (struct __locale_data *)
-     internal_function attribute_hidden;
+extern void _nl_cleanup_ctype (struct __locale_data *) attribute_hidden;
 
 
 #include <iconv/gconv_int.h>
