build: avoid dynamic linking issue on Solaris sparc

Solaris Studio 12 on sparc (not x86) will not remove
unused functions, thus leaving a reference to an
undefined program_name symbol from emit_try_help().

* src/system.h (emit_try_help): Change from an inline function
to a macro, so that the inline function is not actually
defined in libstdbuf.c.
Fixes http://bugs.gnu.org/22430
This commit is contained in:
Pádraig Brady 2016-01-24 17:57:12 -08:00
parent cfdac06196
commit 6412d569dc

View File

@ -650,11 +650,17 @@ emit_ancillary_info (char const *program)
node, node == program ? " invocation" : "");
}
static inline void
emit_try_help (void)
{
fprintf (stderr, _("Try '%s --help' for more information.\n"), program_name);
}
/* Use a macro rather than an inline function, as this references
the global program_name, which causes dynamic linking issues
in libstdbuf.so on some systems where unused functions
are not removed by the linker. */
#define emit_try_help() \
do \
{ \
fprintf (stderr, _("Try '%s --help' for more information.\n"), \
program_name); \
} \
while (0)
#include "inttostr.h"