On Fri, Sep 8, 2017 at 9:25 AM, Eric Sandeen <sandeen@xxxxxxxxxxx> wrote: > On 9/2/17 4:54 PM, Khem Raj wrote: >> Rename local variable progname to avoid a clash with libc >> global symbols >> >> Signed-off-by: Khem Raj <raj.khem@xxxxxxxxx> >> --- >> io/init.c | 10 +++++----- >> mdrestore/xfs_mdrestore.c | 10 +++++----- >> quota/init.c | 10 +++++----- >> spaceman/init.c | 8 ++++---- >> 4 files changed, 19 insertions(+), 19 deletions(-) >> > > First of all, this doesn't build. Please don't send untested > patches... > > [LD] xfs_io > attr.o: In function `chattr_f': > /mnt/test2/git/xfsprogs-maint/io/attr.c:316: undefined reference to `progname' > /mnt/test2/git/xfsprogs-maint/io/attr.c:310: undefined reference to `progname' > /mnt/test2/git/xfsprogs-maint/io/attr.c:332: undefined reference to `progname' > /mnt/test2/git/xfsprogs-maint/io/attr.c:326: undefined reference to `progname' > attr.o: In function `chattr_callback': > /mnt/test2/git/xfsprogs-maint/io/attr.c:252: undefined reference to `progname' > attr.o:/mnt/test2/git/xfsprogs-maint/io/attr.c:255: more undefined references to `progname' follow > collect2: ld returned 1 exit status > gmake[3]: *** [xfs_io] Error 1 > gmake[2]: *** [io] Error 2 > make[1]: *** [default] Error 2 > make: *** [default] Error 2 > > > > second: is progname really a global symbol? I know of __progname, but not progname. > > i.e. this works: > > #include <stdio.h> > > extern const char *__progname; > > int > main( > int argc, > char **argv) > { > printf("progname: %s\n", __progname); > } > > # gcc -o test test.c > # ./test > progname: test > > but this doesn't: > > #include <stdio.h> > > extern const char *progname; > > int > main( > int argc, > char **argv) > { > printf("progname %s\n", progname); > } > > # gcc -o test test.c > /tmp/ccjaZrXZ.o: In function `main': > test.c:(.text+0x12): undefined reference to `progname' > collect2: ld returned 1 exit status > > > -Eric > >> diff --git a/io/init.c b/io/init.c >> index 20d5f80..e82e101 100644 >> --- a/io/init.c >> +++ b/io/init.c >> @@ -23,7 +23,7 @@ >> #include "init.h" >> #include "io.h" >> >> -char *progname; >> +char *io_progname; >> int exitcode; >> int expert; >> int idlethread; >> @@ -35,7 +35,7 @@ usage(void) >> { >> fprintf(stderr, >> _("Usage: %s [-adfinrRstVx] [-m mode] [-p prog] [[-c|-C] cmd]... file\n"), >> - progname); >> + io_progname); >> exit(1); >> } >> >> @@ -142,7 +142,7 @@ init( >> xfs_fsop_geom_t geometry = { 0 }; >> struct fs_path fsp; >> >> - progname = basename(argv[0]); >> + io_progname = basename(argv[0]); >> setlocale(LC_ALL, ""); >> bindtextdomain(PACKAGE, LOCALEDIR); >> textdomain(PACKAGE); >> @@ -186,7 +186,7 @@ init( >> flags |= IO_NONBLOCK; >> break; >> case 'p': >> - progname = optarg; >> + io_progname = optarg; >> break; >> case 'r': >> flags |= IO_READONLY; >> @@ -207,7 +207,7 @@ init( >> expert = 1; >> break; >> case 'V': >> - printf(_("%s version %s\n"), progname, VERSION); >> + printf(_("%s version %s\n"), io_progname, VERSION); >> exit(0); >> default: >> usage(); >> diff --git a/mdrestore/xfs_mdrestore.c b/mdrestore/xfs_mdrestore.c >> index 9d1b4e8..b840a54 100644 >> --- a/mdrestore/xfs_mdrestore.c >> +++ b/mdrestore/xfs_mdrestore.c >> @@ -19,7 +19,7 @@ >> #include "libxfs.h" >> #include "xfs_metadump.h" >> >> -char *progname; >> +char *mdrestore_progname; >> int show_progress = 0; >> int show_info = 0; >> int progress_since_warning = 0; >> @@ -30,7 +30,7 @@ fatal(const char *msg, ...) >> va_list args; >> >> va_start(args, msg); >> - fprintf(stderr, "%s: ", progname); >> + fprintf(stderr, "%s: ", mdrestore_progname); >> vfprintf(stderr, msg, args); >> exit(1); >> } >> @@ -194,7 +194,7 @@ perform_restore( >> static void >> usage(void) >> { >> - fprintf(stderr, "Usage: %s [-V] [-g] source target\n", progname); >> + fprintf(stderr, "Usage: %s [-V] [-g] source target\n", mdrestore_progname); > > line > 80 cols, we try to avoid that > >> exit(1); >> } >> >> @@ -212,7 +212,7 @@ main( >> struct stat statbuf; >> int is_target_file; >> >> - progname = basename(argv[0]); >> + mdrestore_progname = basename(argv[0]); >> >> while ((c = getopt(argc, argv, "giV")) != EOF) { >> switch (c) { >> @@ -223,7 +223,7 @@ main( >> show_info = 1; >> break; >> case 'V': >> - printf("%s version %s\n", progname, VERSION); >> + printf("%s version %s\n", mdrestore_progname, VERSION); > > 80 col > >> exit(0); >> default: >> usage(); >> diff --git a/quota/init.c b/quota/init.c >> index d45dc4c..46403de 100644 >> --- a/quota/init.c >> +++ b/quota/init.c >> @@ -21,7 +21,7 @@ >> #include "input.h" >> #include "init.h" >> >> -char *progname; >> +char *quota_progname; >> int exitcode; >> int expert; >> bool foreign_allowed = false; >> @@ -47,7 +47,7 @@ usage(void) >> { >> fprintf(stderr, >> _("Usage: %s [-V] [-x] [-f] [-p prog] [-c cmd]... [-d project]... [path]\n"), >> - progname); >> + quota_progname); >> exit(1); >> } >> >> @@ -147,7 +147,7 @@ init( >> { >> int c; >> >> - progname = basename(argv[0]); >> + quota_progname = basename(argv[0]); >> setlocale(LC_ALL, ""); >> bindtextdomain(PACKAGE, LOCALEDIR); >> textdomain(PACKAGE); >> @@ -173,13 +173,13 @@ init( >> projid_file = optarg; >> break; >> case 'p': >> - progname = optarg; >> + quota_progname = optarg; >> break; >> case 'x': >> expert++; >> break; >> case 'V': >> - printf(_("%s version %s\n"), progname, VERSION); >> + printf(_("%s version %s\n"), quota_progname, VERSION); >> exit(0); >> default: >> usage(); >> diff --git a/spaceman/init.c b/spaceman/init.c >> index b3eface..bedf112 100644 >> --- a/spaceman/init.c >> +++ b/spaceman/init.c >> @@ -23,7 +23,7 @@ >> #include "path.h" >> #include "space.h" >> >> -char *progname; >> +char *spaceman_progname; >> int exitcode; >> >> void >> @@ -31,7 +31,7 @@ usage(void) >> { >> fprintf(stderr, >> _("Usage: %s [-c cmd] file\n"), >> - progname); >> + spaceman_progname); >> exit(1); >> } >> >> @@ -74,7 +74,7 @@ init( >> xfs_fsop_geom_t geometry = { 0 }; >> struct fs_path fsp; >> >> - progname = basename(argv[0]); >> + spaceman_progname = basename(argv[0]); >> setlocale(LC_ALL, ""); >> bindtextdomain(PACKAGE, LOCALEDIR); >> textdomain(PACKAGE); >> @@ -86,7 +86,7 @@ init( >> add_user_command(optarg); >> break; >> case 'V': >> - printf(_("%s version %s\n"), progname, VERSION); >> + printf(_("%s version %s\n"), spaceman_progname, VERSION); > > 80 col > >> exit(0); >> default: >> usage(); >> -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html