summaryrefslogtreecommitdiff
path: root/gas/as.c
diff options
context:
space:
mode:
authorIndu Bhagat <indu.bhagat@oracle.com>2022-11-15 15:06:39 -0800
committerIndu Bhagat <indu.bhagat@oracle.com>2022-11-15 15:23:57 -0800
commitb07a29781610756a9b75a931c7c13735b7555d9f (patch)
tree69d330c17627a99ca6b37bb1542aebe289140ae0 /gas/as.c
parent972d23ddbd757b7bee622a231afa79adf82b414f (diff)
downloadbinutils-gdb-b07a29781610756a9b75a931c7c13735b7555d9f.tar.gz
gas: add new command line option --gsframe
When --gsframe is specified, the assembler will generate a .sframe section from the CFI directives in the assembly. ChangeLog: * gas/as.c (parse_args): Parse args and set flag_gen_sframe. * gas/as.h: Introduce skeleton for --gsframe. * gas/doc/as.texi: document --gsframe.
Diffstat (limited to 'gas/as.c')
-rw-r--r--gas/as.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/gas/as.c b/gas/as.c
index d42dd5394b5..80a2cb9a418 100644
--- a/gas/as.c
+++ b/gas/as.c
@@ -315,6 +315,8 @@ Options:\n\
#endif
fprintf (stream, _("\
generate GNU Build notes if none are present in the input\n"));
+ fprintf (stream, _("\
+ --gsframe generate SFrame unwind info\n"));
#endif /* OBJ_ELF */
fprintf (stream, _("\
@@ -499,7 +501,8 @@ parse_args (int * pargc, char *** pargv)
OPTION_COMPRESS_DEBUG,
OPTION_NOCOMPRESS_DEBUG,
OPTION_NO_PAD_SECTIONS,
- OPTION_MULTIBYTE_HANDLING /* = STD_BASE + 40 */
+ OPTION_MULTIBYTE_HANDLING, /* = STD_BASE + 40 */
+ OPTION_SFRAME
/* When you add options here, check that they do
not collide with OPTION_MD_BASE. See as.h. */
};
@@ -530,6 +533,7 @@ parse_args (int * pargc, char *** pargv)
,{"elf-stt-common", required_argument, NULL, OPTION_ELF_STT_COMMON}
,{"sectname-subst", no_argument, NULL, OPTION_SECTNAME_SUBST}
,{"generate-missing-build-notes", required_argument, NULL, OPTION_ELF_BUILD_NOTES}
+ ,{"gsframe", no_argument, NULL, OPTION_SFRAME}
#endif
,{"fatal-warnings", no_argument, NULL, OPTION_WARN_FATAL}
,{"gdwarf-2", no_argument, NULL, OPTION_GDWARF_2}
@@ -993,6 +997,10 @@ This program has absolutely no warranty.\n"));
optarg);
break;
+ case OPTION_SFRAME:
+ flag_gen_sframe = 1;
+ break;
+
#endif /* OBJ_ELF */
case 'Z':