[binutils-gdb] gas: make NO_LISTING work again

Jan Beulich jbeulich@sourceware.org
Fri Mar 14 09:32:52 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=2df22dd31d8dc62a07f6b3b43e75b23464c5b384

commit 2df22dd31d8dc62a07f6b3b43e75b23464c5b384
Author: Jan Beulich <jbeulich@suse.com>
Date:   Fri Mar 14 10:30:47 2025 +0100

    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:
---
 gas/as.c      |  8 ++++++++
 gas/listing.c | 54 ------------------------------------------------------
 gas/listing.h | 12 ++++++++++++
 3 files changed, 20 insertions(+), 54 deletions(-)

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;


More information about the Binutils-cvs mailing list