From: Jan Beulich Date: Fri, 14 Mar 2025 09:30:47 +0000 (+0100) Subject: gas: make NO_LISTING work again X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2df22dd31d8dc62a07f6b3b43e75b23464c5b384;p=thirdparty%2Fbinutils-gdb.git gas: make NO_LISTING work again Presumably since no target enables this and there's also no configure control, builds with NO_LISTING defined didn't really work anymore. Convert fallback functions to macros and add #ifndef in a few places. (Behavior is different for affected command line options vs directives: The former are rejected as unrecognized, while the latter are silently ignored. I think that's fair enough.) --- diff --git a/gas/as.c b/gas/as.c index 449167db595..7edac577d16 100644 --- a/gas/as.c +++ b/gas/as.c @@ -469,10 +469,12 @@ parse_args (int * pargc, char *** pargv) OPTION_EMULATION, OPTION_DEBUG_PREFIX_MAP, OPTION_DEFSYM, +#ifndef NO_LISTING OPTION_LISTING_LHS_WIDTH, OPTION_LISTING_LHS_WIDTH2, /* = STD_BASE + 10 */ OPTION_LISTING_RHS_WIDTH, OPTION_LISTING_CONT_LINES, +#endif OPTION_DEPFILE, OPTION_GSTABS, OPTION_GSTABS_PLUS, @@ -573,10 +575,12 @@ parse_args (int * pargc, char *** pargv) ports use -k to enable PIC assembly. */ ,{"keep-locals", no_argument, NULL, 'L'} ,{"keep-locals", no_argument, NULL, 'L'} +#ifndef NO_LISTING ,{"listing-lhs-width", required_argument, NULL, OPTION_LISTING_LHS_WIDTH} ,{"listing-lhs-width2", required_argument, NULL, OPTION_LISTING_LHS_WIDTH2} ,{"listing-rhs-width", required_argument, NULL, OPTION_LISTING_RHS_WIDTH} ,{"listing-cont-lines", required_argument, NULL, OPTION_LISTING_CONT_LINES} +#endif ,{"MD", required_argument, NULL, OPTION_DEPFILE} ,{"mri", no_argument, NULL, 'M'} ,{"nocpp", no_argument, NULL, OPTION_NOCPP} @@ -918,6 +922,7 @@ This program has absolutely no warranty.\n")); flag_keep_locals = 1; break; +#ifndef NO_LISTING case OPTION_LISTING_LHS_WIDTH: listing_lhs_width = atoi (optarg); if (listing_lhs_width_second < listing_lhs_width) @@ -937,6 +942,7 @@ This program has absolutely no warranty.\n")); case OPTION_LISTING_CONT_LINES: listing_lhs_cont_lines = atoi (optarg); break; +#endif /* NO_LISTING */ case 'M': flag_mri = 1; @@ -1382,7 +1388,9 @@ gas_init (void) int main (int argc, char ** argv) { +#ifndef NO_LISTING char ** argv_orig = argv; +#endif struct stat sob; gas_early_init (&argc, &argv); diff --git a/gas/listing.c b/gas/listing.c index c06e749493b..c47a43d3f49 100644 --- a/gas/listing.c +++ b/gas/listing.c @@ -1658,58 +1658,4 @@ listing_source_file (const char *file) listing_tail->hll_file = file_info (file); } -#else - -/* Dummy functions for when compiled without listing enabled. */ - -void -listing_list (int on) -{ - s_ignore (0); -} - -void -listing_eject (int ignore) -{ - s_ignore (0); -} - -void -listing_psize (int ignore) -{ - s_ignore (0); -} - -void -listing_nopage (int ignore) -{ - s_ignore (0); -} - -void -listing_title (int depth) -{ - s_ignore (0); -} - -void -listing_file (const char *name) -{ -} - -void -listing_newline (char *name) -{ -} - -void -listing_source_line (unsigned int n) -{ -} - -void -listing_source_file (const char *n) -{ -} - #endif diff --git a/gas/listing.h b/gas/listing.h index 308a01d62f9..a9822c3ae8a 100644 --- a/gas/listing.h +++ b/gas/listing.h @@ -58,6 +58,18 @@ void listing_title (int depth); void listing_warning (const char *message); void listing_width (unsigned int x); +#ifdef NO_LISTING +#define listing_list s_ignore +#define listing_eject s_ignore +#define listing_psize s_ignore +#define listing_nopage s_ignore +#define listing_title s_ignore +#define listing_file(name) ((void)(name)) +#define listing_newline(ps) ((void)(ps)) +#define listing_source_file(file) ((void)(file)) +#define listing_source_line(line) ((void)(line)) +#endif + extern int listing_lhs_width; extern int listing_lhs_width_second; extern int listing_lhs_cont_lines;