aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2025-03-14 10:30:47 +0100
committerJan Beulich <jbeulich@suse.com>2025-03-14 10:30:47 +0100
commit2df22dd31d8dc62a07f6b3b43e75b23464c5b384 (patch)
treee472e8a63a341a46cda789d9cb45d1b43220870b
parent5e713f7542b1e9860a84368231823ee5c0fbe08c (diff)
downloadbinutils-2df22dd31d8dc62a07f6b3b43e75b23464c5b384.zip
binutils-2df22dd31d8dc62a07f6b3b43e75b23464c5b384.tar.gz
binutils-2df22dd31d8dc62a07f6b3b43e75b23464c5b384.tar.bz2
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.)
-rw-r--r--gas/as.c8
-rw-r--r--gas/listing.c54
-rw-r--r--gas/listing.h12
3 files changed, 20 insertions, 54 deletions
diff --git a/gas/as.c b/gas/as.c
index 449167d..7edac57 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 c06e749..c47a43d 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 308a01d..a9822c3 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;