aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Wilson <wilson@tuliptree.org>2000-08-23 20:36:38 +0000
committerJim Wilson <wilson@tuliptree.org>2000-08-23 20:36:38 +0000
commitefcc591461c3847f1406e5385000b25f962b716d (patch)
tree120a75ba16b86bdb18d0b114fff095ab1a3a9391
parentaca719bf68e953a64dce0516c15e3b5b8adb9c74 (diff)
downloadgdb-efcc591461c3847f1406e5385000b25f962b716d.zip
gdb-efcc591461c3847f1406e5385000b25f962b716d.tar.gz
gdb-efcc591461c3847f1406e5385000b25f962b716d.tar.bz2
Fix unwind section bug found by linux kernel.
* config/tc-ia64.c (output_unw_records): Set U & E flags only if unwind.personality_routine is set.
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-ia64.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index b888775..89c4878 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2000-08-23 Jim Wilson <wilson@cygnus.com>
+
+ * config/tc-ia64.c (output_unw_records): Set U & E flags only if
+ unwind.personality_routine is set.
+
2000-08-23 H.J. Lu <hjl@gnu.org>
* write.c (TC_FIX_ADJUSTABLE): Remove the duplicate.
diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c
index 66d63c7..517b6d3 100644
--- a/gas/config/tc-ia64.c
+++ b/gas/config/tc-ia64.c
@@ -2589,8 +2589,10 @@ output_unw_records (list, ptr)
/* Clear the padding area and personality. */
memset (mem + 8 + size, 0 , extra + 8);
/* Initialize the header area. */
- md_number_to_chars (mem, ( ((bfd_vma) 1 << 48) /* version */
- | ((bfd_vma) 3 << 32) /* U & E handler flags */
+ md_number_to_chars (mem, (((bfd_vma) 1 << 48) /* version */
+ | (unwind.personality_routine
+ ? ((bfd_vma) 3 << 32) /* U & E handler flags */
+ : 0)
| ((size + extra) / 8)), /* length (dwords) */
8);