lib: rename Prog to shadow_progname, with only one definition
The build was failing with duplicate symbol errors with -fno-common. This is the default in GCC 10 and later, and explicitly enabled in some distributions to catch problems like this. There were two causes: - Prog and shadow_logfd were defined in a header file that was included in multiple other files. Fix this by defining them once in shadowlog.c, and having extern declarations in the header. - Most of the tools (except id/nologin) also define a Prog variable, which is not intended to alias the one in the library. Fix this by renaming Prog in the library to shadow_progname, which also matches the new accessor functions for it.
This commit is contained in:
@ -2,14 +2,17 @@
|
||||
|
||||
#include "lib/shadowlog_internal.h"
|
||||
|
||||
const char *shadow_progname;
|
||||
FILE *shadow_logfd;
|
||||
|
||||
void log_set_progname(const char *progname)
|
||||
{
|
||||
Prog = progname;
|
||||
shadow_progname = progname;
|
||||
}
|
||||
|
||||
const char *log_get_progname(void)
|
||||
{
|
||||
return Prog;
|
||||
return shadow_progname;
|
||||
}
|
||||
|
||||
void log_set_logfd(FILE *fd)
|
||||
|
Reference in New Issue
Block a user