On Fri, 06 Sep 2024, Masahiro Yamada <masahiroy@xxxxxxxxxx> wrote: > On Fri, Sep 6, 2024 at 8:01 PM Daniel Gomez via B4 Relay > <devnull+da.gomez.samsung.com@xxxxxxxxxx> wrote: >> >> From: Daniel Gomez <da.gomez@xxxxxxxxxxx> >> >> Use getprogname() [1] instead of program_invocation_short_name() [2] >> for macOS hosts. >> >> [1]: >> https://www.gnu.org/software/gnulib/manual/html_node/ >> program_005finvocation_005fshort_005fname.html >> >> [2]: >> https://developer.apple.com/library/archive/documentation/System/ >> Conceptual/ManPages_iPhoneOS/man3/getprogname.3.html >> >> Fixes build error for macOS hosts: >> >> drivers/gpu/drm/xe/xe_gen_wa_oob.c:34:3: error: use of >> undeclared identifier 'program_invocation_short_name' 34 | >> program_invocation_short_name); | ^ 1 error >> generated. >> >> Signed-off-by: Daniel Gomez <da.gomez@xxxxxxxxxxx> >> Reviewed-by: Lucas De Marchi <lucas.demarchi@xxxxxxxxx> >> --- >> drivers/gpu/drm/xe/xe_gen_wa_oob.c | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/drivers/gpu/drm/xe/xe_gen_wa_oob.c b/drivers/gpu/drm/xe/xe_gen_wa_oob.c >> index 904cf47925aa..0d933644d8a0 100644 >> --- a/drivers/gpu/drm/xe/xe_gen_wa_oob.c >> +++ b/drivers/gpu/drm/xe/xe_gen_wa_oob.c >> @@ -8,6 +8,7 @@ >> #include <errno.h> >> #include <stdbool.h> >> #include <stdio.h> >> +#include <stdlib.h> >> #include <string.h> >> >> #define HEADER \ >> @@ -30,6 +31,9 @@ >> >> static void print_usage(FILE *f) >> { >> +#ifdef __APPLE__ >> + const char *program_invocation_short_name = getprogname(); >> +#endif >> fprintf(f, "usage: %s <input-rule-file> <generated-c-source-file> <generated-c-header-file>\n", >> program_invocation_short_name); >> } >> >> -- >> 2.46.0 >> >> > > > > Before adding such #ifdef, you should check how other programs do. IMO either option is preferred over adding #ifdefs. BR, Jani. > > > > > > > > > > Solution 1 : hard-code the program name > > > diff --git a/drivers/gpu/drm/xe/xe_gen_wa_oob.c > b/drivers/gpu/drm/xe/xe_gen_wa_oob.c > index 106ee2b027f0..9e9a29e2cecf 100644 > --- a/drivers/gpu/drm/xe/xe_gen_wa_oob.c > +++ b/drivers/gpu/drm/xe/xe_gen_wa_oob.c > @@ -30,8 +30,7 @@ > > static void print_usage(FILE *f) > { > - fprintf(f, "usage: %s <input-rule-file> > <generated-c-source-file> <generated-c-header-file>\n", > - program_invocation_short_name); > + fprintf(f, "usage: xe_gen_wa_oob <input-rule-file> > <generated-c-source-file> <generated-c-header-file>\n"); > } > > static void print_parse_error(const char *err_msg, const char *line, > > > > > > > > > Solution 2: use argv[0] > > > diff --git a/drivers/gpu/drm/xe/xe_gen_wa_oob.c > b/drivers/gpu/drm/xe/xe_gen_wa_oob.c > index 106ee2b027f0..600c63e88e46 100644 > --- a/drivers/gpu/drm/xe/xe_gen_wa_oob.c > +++ b/drivers/gpu/drm/xe/xe_gen_wa_oob.c > @@ -28,10 +28,10 @@ > "\n" \ > "#endif\n" > > -static void print_usage(FILE *f) > +static void print_usage(FILE *f, const char *progname) > { > fprintf(f, "usage: %s <input-rule-file> > <generated-c-source-file> <generated-c-header-file>\n", > - program_invocation_short_name); > + progname); > } > > static void print_parse_error(const char *err_msg, const char *line, > @@ -136,7 +136,7 @@ int main(int argc, const char *argv[]) > > if (argc < 3) { > fprintf(stderr, "ERROR: wrong arguments\n"); > - print_usage(stderr); > + print_usage(stderr, argv[0]); > return 1; > } -- Jani Nikula, Intel