jkmcnk / sx-gcc

The GNU Compiler Collection port to NEC SX CPU architecture.
GNU General Public License v2.0
0 stars 2 forks source link

gas crash on ia64: Assertion failure in size_seg at ../../sx-binutils/gas/write.c line 569 #16

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
I only encounter this on the Asama (ia64), some compielr tests fail with
the message:

{{{
/tmp/ccpmsiau.s: Assembler messages:
/tmp/ccpmsiau.s:67: Internal error!
Assertion failure in size_seg at ../../sx-binutils/gas/write.c line 569.
Please report this bug.
}}}

The assembler source producing this is attached. It does not seem to happen
on x86_64!

Regards,
Erich

Original issue reported on code.google.com by efo...@gmail.com on 25 Sep 2008 at 4:14

Attachments:

GoogleCodeExporter commented 8 years ago
ok, this is due to my utter ignorance of error reporting from val_to_pow2() 
routine.

however, assembly

bss a1488, 80, 80  # ASM_OUTPUT_LOCAL

is just plain wrong, as the last parameter (alignment) should be a power of two 
(at
least the very core of gas expects this). currently, I ignorantly don't report 
an
error in my pseudo-op handler, which I will fix at once.

however, gcc should be fixed to produce proper bss pseudo-op. I suggest all
bss/lcomm/slcomm symbols to be 8-byte aligned by default.

(also, even if this does not fail with an internal error on other, non-ia64
platforms, it surely produces wrong code)

Original comment by jmoc...@gmail.com on 29 Sep 2008 at 1:21

GoogleCodeExporter commented 8 years ago
fixed in gas. now it's gcc's turn. make all alignments a power of two. (it 
really
makes no sense to have other alignments in a strongly binary oriented world, 
does it?)

Original comment by jmoc...@gmail.com on 29 Sep 2008 at 1:30

GoogleCodeExporter commented 8 years ago
supposedly fixed ...

Original comment by jmoc...@gmail.com on 3 Oct 2008 at 9:42