This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: IA64 gas is broken


On Fri, Feb 11, 2005 at 11:46:46AM -0800, H. J. Lu wrote:
> [hjl@gnu-4 tmp]$ cat crti.s
>         .xdata8 ".init_array",@fptr(__pthread_initialize_minimal_internal)
> [hjl@gnu-4 tmp]$ gcc -c crti.s
> gcc: Internal error: Segmentation fault (program as)
> Please submit a full bug report.
> See <URL:http://bugzilla.redhat.com/bugzilla/> for instructions.
> 

This obstack_free calls in patch

http://sourceware.org/ml/binutils/2005-02/msg00029.html

is the cause. set_section uses the memory. I will back out the following
patch.


H.J.
---
Index: config/tc-ia64.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-ia64.c,v
retrieving revision 1.129
retrieving revision 1.130
diff -u -p -r1.129 -r1.130
--- config/tc-ia64.c	2 Feb 2005 07:37:33 -0000	1.129
+++ config/tc-ia64.c	11 Feb 2005 07:45:20 -0000	1.130
@@ -4704,6 +4713,7 @@ dot_xdata (size)
 
   md.keep_pending_output = 1;
   set_section (name);
+  obstack_free (&notes, name);
   cons (size);
   obj_elf_previous (0);
   md.keep_pending_output = 0;
@@ -4758,6 +4768,7 @@ dot_xfloat_cons (kind)
 
   md.keep_pending_output = 1;
   set_section (name);
+  obstack_free (&notes, name);
   stmt_float_cons (kind);
   obj_elf_previous (0);
   md.keep_pending_output = 0;
@@ -4773,6 +4784,7 @@ dot_xstringer (zero)
 
   md.keep_pending_output = 1;
   set_section (name);
+  obstack_free (&notes, name);
   stringer (zero);
   obj_elf_previous (0);
   md.keep_pending_output = 0;
@@ -4789,6 +4801,7 @@ dot_xdata_ua (size)
 
   md.keep_pending_output = 1;
   set_section (name);
+  obstack_free (&notes, name);
   md.auto_align = 0;
   cons (size);
   md.auto_align = saved_auto_align;
@@ -4807,6 +4820,7 @@ dot_xfloat_cons_ua (kind)
 
   md.keep_pending_output = 1;
   set_section (name);
+  obstack_free (&notes, name);
   md.auto_align = 0;
   stmt_float_cons (kind);
   md.auto_align = saved_auto_align;



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]