There was pathological amount of inlines, some of them caused warnings
and linking failures. All of them are now removed. Modern compilers are
smarter than that.
https://bugs.gentoo.org/876337
--- a/intl/gettextP.h
+++ b/intl/gettextP.h
@@ -46,7 +46,7 @@
 #else
 static nls_uint32 SWAP PARAMS ((nls_uint32 i));
 
-static inline nls_uint32
+static nls_uint32
 SWAP (i)
      nls_uint32 i;
 {
--- a/intl/hash-string.h
+++ b/intl/hash-string.h
@@ -35,7 +35,7 @@
    1986, 1987 Bell Telephone Laboratories, Inc.]  */
 static unsigned long hash_string PARAMS ((const char *__str_param));
 
-static inline unsigned long
+static unsigned long
 hash_string (str_param)
      const char *str_param;
 {
--- a/intl/l10nflist.c
+++ b/intl/l10nflist.c
@@ -154,7 +154,7 @@
 /* Return number of bits set in X.  */
 static int pop PARAMS ((int x));
 
-static inline int
+static int
 pop (x)
      int x;
 {
--- a/lgc-pg/misc.c
+++ b/lgc-pg/misc.c
@@ -27,27 +27,27 @@
 extern char *dest_path;
 
 /* compares to strings and returns true if their first strlen(str1) chars are equal */
-inline int equal_str( char *str1, char *str2 )
+int equal_str( char *str1, char *str2 )
 {
     if ( strlen( str1 ) != strlen( str2 ) ) return 0;
     return ( !strncmp( str1, str2, strlen( str1 ) ) );
 }
 
 /* set delay to ms milliseconds */
-inline void set_delay( Delay *delay, int ms )
+void set_delay( Delay *delay, int ms )
 {
     delay->limit = ms;
     delay->cur = 0;
 }
 
 /* reset delay ( cur = 0 )*/
-inline void reset_delay( Delay *delay )
+void reset_delay( Delay *delay )
 {
     delay->cur = 0;
 }
 
 /* check if times out and reset */
-inline int timed_out( Delay *delay, int ms )
+int timed_out( Delay *delay, int ms )
 {
     delay->cur += ms;
     if ( delay->cur >= delay->limit ) {
@@ -60,7 +60,7 @@
 }
 
 
-inline void goto_tile( int *x, int *y, int d )
+void goto_tile( int *x, int *y, int d )
 {
     /*  0 -up, clockwise, 5 - left up */
     switch ( d ) {
--- a/lgc-pg/misc.h
+++ b/lgc-pg/misc.h
@@ -52,13 +52,13 @@
 } Delay;
 
 /* set delay to ms milliseconds */
-inline void set_delay( Delay *delay, int ms );
+void set_delay( Delay *delay, int ms );
 
 /* reset delay ( cur = 0 )*/
-inline void reset_delay( Delay *delay );
+void reset_delay( Delay *delay );
 
 /* check if time's out ( add ms milliseconds )and reset */
-inline int timed_out( Delay *delay, int ms );
+int timed_out( Delay *delay, int ms );
 
 /* return distance betwteen to map positions */
 int get_dist( int x1, int y1, int x2, int y2 );
--- a/lged/lged.c
+++ b/lged/lged.c
@@ -356,7 +356,7 @@
     free((void *)path);
     
     if (within_source_tree)
-      verbosef(2, "Source tree detected. Using inline paths.\n");
+      verbosef(2, "Source tree detected. Using paths.\n");
   }
   
   /* get path for unitdb */
@@ -387,7 +387,7 @@
 }
 
 /** returns 1 if criterion is to be omitted */
-inline static int is_omitted(const char *criterion) {
+static int is_omitted(const char *criterion) {
   return !criterion || strcmp(criterion, "-") == 0 || strcmp(criterion, "*") == 0;
 }
 
@@ -407,7 +407,7 @@
  * of ary. If found, the index of the first element is returned,
  * -1 otherwise. 'i' is the starting index, 'sz' the size of the array.
  */
-inline static int find_in_array(const char *needle, int i, const char **ary, int sz) {
+static int find_in_array(const char *needle, int i, const char **ary, int sz) {
   for (; i < sz; i++)
     if (strcasestr(ary[i], needle)) return i;
   return -1;
@@ -430,7 +430,7 @@
  * returns 1 if 'bitmap' is true at position 'idx'. 'sz' is the size of
  * the bitmap.
  */
-inline static int in_bitmap(int idx, const char *bitmap, int sz) {
+static int in_bitmap(int idx, const char *bitmap, int sz) {
   return idx >= 0 && idx < sz && bitmap[idx];
 }
 
--- a/src/campaign.c
+++ b/src/campaign.c
@@ -135,7 +135,7 @@
 }
 
 /** resolve key within entries and translate the result wrt domain */
-inline static char *camp_resolve_ref_localized(PData *entries, const char *key, const char *scen_stat, const char *domain)
+static char *camp_resolve_ref_localized(PData *entries, const char *key, const char *scen_stat, const char *domain)
 {
     const char *res = camp_resolve_ref(entries, key, scen_stat);
     return res ? strdup(trd(domain, res)) : 0;
--- a/src/engine.c
+++ b/src/engine.c
@@ -375,7 +375,7 @@
 Returns true when the status screen dismission events took place.
 ====================================================================
 */
-inline static int engine_status_screen_dismissed()
+static int engine_status_screen_dismissed()
 {
     int dummy;
     return event_get_buttonup( &dummy, &dummy, &dummy )
--- a/src/gui.c
+++ b/src/gui.c
@@ -1691,7 +1691,7 @@
 }
 
 /** unite with existing repaint rectangle */
-inline static void message_pane_unite_repaint_rect(MessagePane *pane, int x1, int y1, int x2, int y2)
+static void message_pane_unite_repaint_rect(MessagePane *pane, int x1, int y1, int x2, int y2)
 {
     if ((pane->refresh_x2 - pane->refresh_x1) <= 0
         || (pane->refresh_y2 - pane->refresh_y1) <= 0) {
--- a/src/lg-sdl.c
+++ b/src/lg-sdl.c
@@ -35,7 +35,7 @@
 /* sdl surface */
 
 /* return full path of bitmap */
-inline void get_full_bmp_path( char *full_path, const char *file_name )
+void get_full_bmp_path( char *full_path, const char *file_name )
 {
     sprintf(full_path,  "%s/gfx/%s", get_gamedir(), file_name );
 }
@@ -119,7 +119,7 @@
 /*
     lock surface
 */
-inline void lock_surf(SDL_Surface *sur)
+void lock_surf(SDL_Surface *sur)
 {
     if (SDL_MUSTLOCK(sur))
         SDL_LockSurface(sur);
@@ -128,7 +128,7 @@
 /*
     unlock surface
 */
-inline void unlock_surf(SDL_Surface *sur)
+void unlock_surf(SDL_Surface *sur)
 {
     if (SDL_MUSTLOCK(sur))
         SDL_UnlockSurface(sur);
@@ -477,7 +477,7 @@
 /*
     lock font surface
 */
-inline void lock_font(Font *fnt)
+void lock_font(Font *fnt)
 {
     if (SDL_MUSTLOCK(fnt->pic))
         SDL_LockSurface(fnt->pic);
@@ -486,7 +486,7 @@
 /*
     unlock font surface
 */
-inline void unlock_font(Font *fnt)
+void unlock_font(Font *fnt)
 {
     if (SDL_MUSTLOCK(fnt->pic))
         SDL_UnlockSurface(fnt->pic);
@@ -501,7 +501,7 @@
     return rect;
 }
 
-inline int  char_width(Font *fnt, char c)
+int  char_width(Font *fnt, char c)
 {
     unsigned i = (unsigned char)c;
     return fnt->char_offset[i + 1] - fnt->char_offset[i];
@@ -844,7 +844,7 @@
 /*
     lock surface
 */
-inline void lock_screen()
+void lock_screen()
 {
     if (SDL_MUSTLOCK(sdl.screen))
         SDL_LockSurface(sdl.screen);
@@ -853,7 +853,7 @@
 /*
     unlock surface
 */
-inline void unlock_screen()
+void unlock_screen()
 {
     if (SDL_MUSTLOCK(sdl.screen))
         SDL_UnlockSurface(sdl.screen);
@@ -862,7 +862,7 @@
 /*
     flip hardware screens (double buffer)
 */
-inline void flip_screen()
+void flip_screen()
 {
     SDL_Flip(sdl.screen);
 }
--- a/src/lg-sdl.h
+++ b/src/lg-sdl.h
@@ -43,8 +43,8 @@
 SDL_Surface* create_surf(int w, int h, int f);
 void free_surf( SDL_Surface **surf );
 int  disp_format(SDL_Surface *sur);
-inline void lock_surf(SDL_Surface *sur);
-inline void unlock_surf(SDL_Surface *sur);
+void lock_surf(SDL_Surface *sur);
+void unlock_surf(SDL_Surface *sur);
 void blit_surf(void);
 void alpha_blit_surf(int alpha);
 void fill_surf(int c);
@@ -93,8 +93,8 @@
 void free_font(Font **sfnt);
 int  write_text(Font *sfnt, SDL_Surface *dest, int x, int y, const char *str, int alpha);
 void write_line( SDL_Surface *surf, Font *font, const char *str, int x, int *y );
-inline void lock_font(Font *sfnt);
-inline void unlock_font(Font *sfnt);
+void lock_font(Font *sfnt);
+void unlock_font(Font *sfnt);
 SDL_Rect last_write_rect(Font *fnt);
 int  text_width(Font *fnt, const char *str);
 int  char_width(Font *fnt, char c);
@@ -132,9 +132,9 @@
 void undim_screen(int steps, int delay, int trp);
 int  wait_for_key();
 void wait_for_click();
-inline void lock_screen();
-inline void unlock_screen();
-inline void flip_screen();
+void lock_screen();
+void unlock_screen();
+void flip_screen();
 
 /* cursor */
 /* creates cursor */
--- a/src/misc.c
+++ b/src/misc.c
@@ -29,27 +29,27 @@
 extern int map_w, map_h; /* FIX ME! */
 
 /* compares to strings and returns true if their first strlen(str1) chars are equal */
-inline int equal_str( const char *str1, const char *str2 )
+int equal_str( const char *str1, const char *str2 )
 {
     if ( strlen( str1 ) != strlen( str2 ) ) return 0;
     return ( !strncmp( str1, str2, strlen( str1 ) ) );
 }
 
 /* set delay to ms milliseconds */
-inline void set_delay( Delay *delay, int ms )
+void set_delay( Delay *delay, int ms )
 {
     delay->limit = ms;
     delay->cur = 0;
 }
 
 /* reset delay ( cur = 0 )*/
-inline void reset_delay( Delay *delay )
+void reset_delay( Delay *delay )
 {
     delay->cur = 0;
 }
 
 /* check if times out and reset */
-inline int timed_out( Delay *delay, int ms )
+int timed_out( Delay *delay, int ms )
 {
     delay->cur += ms;
     if ( delay->cur >= delay->limit ) {
@@ -62,7 +62,7 @@
 }
 
 /* Convert grid coordinates into isometric (diagonal) coordinates. */
-inline static void convert_coords_to_diag( int *x, int *y )
+static void convert_coords_to_diag( int *x, int *y )
 {
   *y += (*x + 1) / 2;
 }
@@ -126,13 +126,13 @@
 }
 
 /** return 1 if ch is a line breaking character */
-inline static int text_is_linebreak(char ch)
+static int text_is_linebreak(char ch)
 {
     return ch == '#';
 }
 
 /** return 1 if text is breakable just before end */
-inline static int text_is_breakable(const char *begin, const char *end)
+static int text_is_breakable(const char *begin, const char *end)
 {
     return begin != end
             && (end[-1] == '\t' || end[-1] == '\n' || end[-1] == ' '
--- a/src/misc.h
+++ b/src/misc.h
@@ -101,13 +101,13 @@
 } Delay;
 
 /* set delay to ms milliseconds */
-inline void set_delay( Delay *delay, int ms );
+void set_delay( Delay *delay, int ms );
 
 /* reset delay ( cur = 0 )*/
-inline void reset_delay( Delay *delay );
+void reset_delay( Delay *delay );
 
 /* check if time's out ( add ms milliseconds )and reset */
-inline int timed_out( Delay *delay, int ms );
+int timed_out( Delay *delay, int ms );
 
 /* return distance betwteen to map positions */
 int get_dist( int x1, int y1, int x2, int y2 );
--- a/src/parser.c
+++ b/src/parser.c
@@ -51,11 +51,11 @@
     free(ctd->filename);
 }
 
-static inline void common_tree_data_ref(struct CommonTreeData *ctd) {
+static void common_tree_data_ref(struct CommonTreeData *ctd) {
     ctd->ref++;
 }
 
-static inline int common_tree_data_deref(struct CommonTreeData *ctd) {
+static int common_tree_data_deref(struct CommonTreeData *ctd) {
     int del = --ctd->ref == 0;
     if (del) common_tree_data_delete(ctd);
     return del;
@@ -115,7 +115,7 @@
 Returns whether this is a valid character for a string.
 ====================================================================
 */
-inline static int parser_is_valid_string_char(char ch)
+static int parser_is_valid_string_char(char ch)
 {
     switch (ch) {
     case '$': case '/': case '@': case '_': case '.': case ':': case '~':
@@ -272,7 +272,7 @@
 and return the new position.
 ====================================================================
 */
-static inline const char* string_ignore_whitespace( const char *string )
+static const char* string_ignore_whitespace( const char *string )
 {
     while ( *string != 0 && (unsigned char)*string <= 32 ) string++;
     return string;
@@ -286,7 +286,7 @@
 hours of precious sleep.
 ====================================================================
 */
-static inline PData *parser_create_pdata( char *name, List *values, int lineno, struct CommonTreeData *ctd )
+static PData *parser_create_pdata( char *name, List *values, int lineno, struct CommonTreeData *ctd )
 {
     PData *pd = calloc(1, sizeof(PData));
     pd->name = name;
--- a/src/slot.c
+++ b/src/slot.c
@@ -157,7 +157,7 @@
     /* we always write the platform-specific endianness */
     fwrite( &i, sizeof( int ), 1, file );
 }
-static inline int load_int( FILE *file )
+static int load_int( FILE *file )
 {
     return try_load_int( file, 0 );
 }
@@ -186,7 +186,7 @@
 {
     fwrite( &p, sizeof( void * ), 1, file );
 }
-static inline void *load_pointer( FILE *file )
+static void *load_pointer( FILE *file )
 {
     return try_load_pointer( file, 0 );
 }
--- a/util/hashtable_private.h
+++ b/util/hashtable_private.h
@@ -30,13 +30,13 @@
 
 /*****************************************************************************/
 /* indexFor */
-static inline unsigned int
+static unsigned int
 indexFor(unsigned int tablelength, unsigned int hashvalue) {
     return (hashvalue % tablelength);
 };
 
 /* Only works if tablelength == 2^N */
-/*static inline unsigned int
+/*static unsigned int
 indexFor(unsigned int tablelength, unsigned int hashvalue)
 {
     return (hashvalue & (tablelength - 1u));
--- a/util/localize.c
+++ b/util/localize.c
@@ -71,7 +71,7 @@
 }
 
 /** returns the domain-map */
-static inline struct hashtable *domain_map_instance() {
+static struct hashtable *domain_map_instance() {
   if (!domain_map) {
     domain_map = create_hashtable(10, (unsigned int (*) (void*))hash_string,
                               (int (*)(void *, void *))strcmp,
--- a/util/localize.h
+++ b/util/localize.h
@@ -37,7 +37,7 @@
 /** shorthand for fetching translation of default domain */
 #  define tr(s) gettext (s)
 /** shorthand for fetching translation of specified domain */
-inline static const char *trd(const char *dom, const char *s) { return *(s) ? dgettext ((dom), (s)) : ""; }
+static const char *trd(const char *dom, const char *s) { return *(s) ? dgettext ((dom), (s)) : ""; }
 /** shorthand for marking for translation of default domain */
 #  define TR_NOOP(s) (s)