aboutsummaryrefslogtreecommitdiff
path: root/gas/dw2gencfi.c
diff options
context:
space:
mode:
authorMaxim Kuvyrkov <maxim@kugelworks.com>2009-11-04 09:52:00 +0000
committerMaxim Kuvyrkov <maxim@kugelworks.com>2009-11-04 09:52:00 +0000
commit2c678708e6dc01e097a8cae3688a4adf412d978c (patch)
treef99f4356ed9711198f5b6ff6489d7219529798bc /gas/dw2gencfi.c
parentd51b88d344bee97bcc464c442d5240183907c598 (diff)
downloadgdb-2c678708e6dc01e097a8cae3688a4adf412d978c.zip
gdb-2c678708e6dc01e097a8cae3688a4adf412d978c.tar.gz
gdb-2c678708e6dc01e097a8cae3688a4adf412d978c.tar.bz2
2009-11-04 Daniel Jacobowitz <dan@codesourcery.com>
Maxim Kuvyrkov <maxim@codesourcery.com> * config/tc-m68k.h (CF_DIFF_EXPR_OK): Define to 0 for uClinux. (CFI_DIFF_LSDA_OK): Define. * config/te-uclinux.h: New file. * configure.tgt (m68k-uclinux): Define em. * dw2gencfi.c (CFI_DIFF_LSDA_OK): New macro. (dot_cfi_lsda, output_fde): Use instead of CFI_DIFF_EXPR_OK.
Diffstat (limited to 'gas/dw2gencfi.c')
-rw-r--r--gas/dw2gencfi.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/gas/dw2gencfi.c b/gas/dw2gencfi.c
index 5d35712..dfe24af 100644
--- a/gas/dw2gencfi.c
+++ b/gas/dw2gencfi.c
@@ -36,6 +36,14 @@
# endif
#endif
+#ifndef CFI_DIFF_LSDA_OK
+# define CFI_DIFF_LSDA_OK CFI_DIFF_EXPR_OK
+#endif
+
+#if CFI_DIFF_EXPR_OK == 1 && CFI_DIFF_LSDA_OK == 0
+# error "CFI_DIFF_EXPR_OK should imply CFI_DIFF_LSDA_OK"
+#endif
+
/* We re-use DWARF2_LINE_MIN_INSN_LENGTH for the code alignment field
of the CIE. Default to 1 if not otherwise specified. */
#ifndef DWARF2_LINE_MIN_INSN_LENGTH
@@ -758,7 +766,7 @@ dot_cfi_lsda (int ignored ATTRIBUTE_UNUSED)
if ((encoding & 0xff) != encoding
|| ((encoding & 0x70) != 0
-#if CFI_DIFF_EXPR_OK || defined tc_cfi_emit_pcrel_expr
+#if CFI_DIFF_LSDA_OK || defined tc_cfi_emit_pcrel_expr
&& (encoding & 0x70) != DW_EH_PE_pcrel
#endif
)
@@ -1445,7 +1453,7 @@ output_fde (struct fde_entry *fde, struct cie_entry *cie,
exp = fde->lsda;
if ((fde->lsda_encoding & 0x70) == DW_EH_PE_pcrel)
{
-#if CFI_DIFF_EXPR_OK
+#if CFI_DIFF_LSDA_OK
exp.X_op = O_subtract;
exp.X_op_symbol = symbol_temp_new_now ();
emit_expr (&exp, augmentation_size);