warn() is being exported as a dynamic symbol because it collides with warn(3), and cc presumes that we're overriding it. This could affect unexpectedly loaded shared libraries (e.g. NSS modules). To fix, rename the function.
Signed-off-by: Richard Tollerton <rich.toller...@ni.com> --- src/shutdown.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/shutdown.c b/src/shutdown.c index 9e72890..6318f58 100644 --- a/src/shutdown.c +++ b/src/shutdown.c @@ -213,7 +213,7 @@ int init_setenv(char *name, char *value) /* * Tell everyone the system is going down in 'mins' minutes. */ -void warn(int mins) +void issue_warn(int mins) { char buf[MESSAGELEN + sizeof(newstate)]; int len; @@ -407,7 +407,7 @@ void issue_shutdown(char *halttype) int do_halt = (down_level[0] == '0'); /* Warn for the last time */ - warn(0); + issue_warn(0); if (dontshut) { hardsleep(1); stopit(0); @@ -752,13 +752,13 @@ int main(int argc, char **argv) if (wt == 0) issue_shutdown(halttype); /* Give warnings on regular intervals and finally shutdown. */ - if (wt < 15 && !needwarning(wt)) warn(wt); + if (wt < 15 && !needwarning(wt)) issue_warn(wt); while(wt) { if (wt <= 5 && !didnolog) { donologin(wt); didnolog++; } - if (needwarning(wt)) warn(wt); + if (needwarning(wt)) issue_warn(wt); hardsleep(60); wt--; } -- 1.8.4.2