Fix unwind section bug found by linux kernel.
authorJim Wilson <wilson@tuliptree.org>
Wed, 23 Aug 2000 20:36:38 +0000 (20:36 +0000)
committerJim Wilson <wilson@tuliptree.org>
Wed, 23 Aug 2000 20:36:38 +0000 (20:36 +0000)
* config/tc-ia64.c (output_unw_records): Set U & E flags only if
unwind.personality_routine is set.

gas/ChangeLog
gas/config/tc-ia64.c

index b888775f7f79f461c1daf2fd9d5421a893c2dedb..89c48785b92ef165e2132073e52745b7f071fb79 100644 (file)
@@ -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.
index 66d63c739a0963d0641b40e3527ecf85196196cc..517b6d3a38343b26817f074a1bfb7d256c397d49 100644 (file)
@@ -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);