aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIndu Bhagat <indu.bhagat@oracle.com>2025-07-11 23:31:50 -0700
committerIndu Bhagat <indu.bhagat@oracle.com>2025-07-11 23:31:50 -0700
commit7f8017add951c46959e54590c70cb2adcc1cede4 (patch)
tree79983e217a30d2b1cad59522db00a2fa210f62ea
parent8b0a598853163772f412c9b3df37e66f41960479 (diff)
downloadbinutils-7f8017add951c46959e54590c70cb2adcc1cede4.zip
binutils-7f8017add951c46959e54590c70cb2adcc1cede4.tar.gz
binutils-7f8017add951c46959e54590c70cb2adcc1cede4.tar.bz2
gas: sframe: guard block with support_sframe_p
SFrame is generated for ELF targets only. Guard the block with support_sframe_p like others for consistency. Also, in a later commit, we would like to do a: elf_section_type (sframe_seg) = SHT_GNU_SFRAME; This cannot be done for non-ELF targets, hence the need to guard with some pre-processor conditional to enable it for only OBJ_ELF. Guarding with support_sframe_p works for now, because those targets that support SFrame define support_sframe_p: - x86_64 and aarch64 define support_sframe_p when OBJ_ELF is defined - s390x has no non-LEF target. We continue to issue an error on targets where SFrame is not supported: .sframe not supported for target gas/ * dw2gencfi.c (cfi_finish): Guard with support_sframe_p. (support_sframe_p): Remove stub to define to false for backends not supporting SFrame.
-rw-r--r--gas/dw2gencfi.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/gas/dw2gencfi.c b/gas/dw2gencfi.c
index 5eb8a5d..6f8d591 100644
--- a/gas/dw2gencfi.c
+++ b/gas/dw2gencfi.c
@@ -91,11 +91,6 @@
#define tc_cfi_reloc_for_encoding(e) BFD_RELOC_NONE
#endif
-/* Targets which support SFrame format will define this and return true. */
-#ifndef support_sframe_p
-# define support_sframe_p() false
-#endif
-
/* Private segment collection list. */
struct dwcfi_seg_list
{
@@ -2606,6 +2601,7 @@ cfi_finish (void)
- .sframe in the .cfi_sections directive. */
if (flag_gen_sframe || (all_cfi_sections & CFI_EMIT_sframe) != 0)
{
+#ifdef support_sframe_p
if (support_sframe_p () && !SUPPORT_FRAME_LINKONCE)
{
segT sframe_seg;
@@ -2618,6 +2614,7 @@ cfi_finish (void)
output_sframe (sframe_seg);
}
else
+#endif
as_bad (_(".sframe not supported for target"));
}