/* Enable verbose mode. */
int verbose = 0;
+#if defined OBJ_ELF || defined OBJ_MAYBE_ELF
+int flag_use_elf_stt_common = DEFAULT_GENERATE_ELF_STT_COMMON;
+#endif
+
/* Keep the output file. */
static int keep_it = 0;
--size-check=[error|warning]\n\
ELF .size directive check (default --size-check=error)\n"));
fprintf (stream, _("\
+ --elf-stt-common=[no|yes]\n\
+ generate ELF common symbols with STT_COMMON type\n"));
+ fprintf (stream, _("\
--sectname-subst enable section name substitution sequences\n"));
#endif
fprintf (stream, _("\
OPTION_EXECSTACK,
OPTION_NOEXECSTACK,
OPTION_SIZE_CHECK,
+ OPTION_ELF_STT_COMMON,
OPTION_SECTNAME_SUBST,
OPTION_ALTERNATE,
OPTION_AL,
,{"execstack", no_argument, NULL, OPTION_EXECSTACK}
,{"noexecstack", no_argument, NULL, OPTION_NOEXECSTACK}
,{"size-check", required_argument, NULL, OPTION_SIZE_CHECK}
+ ,{"elf-stt-common", required_argument, NULL, OPTION_ELF_STT_COMMON}
,{"sectname-subst", no_argument, NULL, OPTION_SECTNAME_SUBST}
#endif
,{"fatal-warnings", no_argument, NULL, OPTION_WARN_FATAL}
case 1: /* File name. */
if (!strcmp (optarg, "-"))
- optarg = "";
+ optarg = (char *) "";
new_argv[new_argc++] = optarg;
new_argv[new_argc] = NULL;
break;
break;
}
- n = xmalloc (sizeof * n);
+ n = XNEW (struct itbl_file_list);
n->next = itbl_files;
n->name = optarg;
itbl_files = n;
case OPTION_SIZE_CHECK:
if (strcasecmp (optarg, "error") == 0)
- flag_size_check = size_check_error;
+ flag_allow_nonconst_size = FALSE;
else if (strcasecmp (optarg, "warning") == 0)
- flag_size_check = size_check_warning;
+ flag_allow_nonconst_size = TRUE;
else
as_fatal (_("Invalid --size-check= option: `%s'"), optarg);
break;
+ case OPTION_ELF_STT_COMMON:
+ if (strcasecmp (optarg, "no") == 0)
+ flag_use_elf_stt_common = 0;
+ else if (strcasecmp (optarg, "yes") == 0)
+ flag_use_elf_stt_common = 1;
+ else
+ as_fatal (_("Invalid --elf-stt-common= option: `%s'"),
+ optarg);
+ break;
+
case OPTION_SECTNAME_SUBST:
flag_sectname_subst = 1;
break;