[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