This is the mail archive of the
mailing list for the GCC project.
Re: egcs build failure on NetBSD/i386 1.3
- To: Peter Simons <peter dot simons at gmd dot de>
- Subject: Re: egcs build failure on NetBSD/i386 1.3
- From: Krister Walfridsson <cato at df dot lth dot se>
- Date: Sat, 14 Mar 1998 20:34:27 +0100 (MET)
- cc: egcs-bugs at cygnus dot com
I have looked some into this problem, but I don't have the time to fix it.
But here is my analysis, in case someone want to do the work.
The problem is that 'gengenrtl' compiled with the compiler from stage 1
dumps core. The culprit is the change:
Mon Mar 2 22:59:28 1998 J"orn Rennecke <email@example.com>
* final.c (insn_last_address, insn_current_align, uid_align):
(in_align_chain, align_fuzz, align_shrink_fuzz): New functions.
(shorten_branches, final_scan_insn): Implement LABEL_ALIGN,
LABEL_ALIGN_AFTER_BARRIER and LOOP_ALIGN target macros.
(label_to_alignment): New function.
* genattrtab.c (write_test_expr): If one of LABEL_ALIGN,
LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN is defined, call
insn_current_reference_address instead of insn_current_address.
(or_attr_value, write_length_unit_log): New functions.
(main): Call write_length_unit_log.
(write_const_num_delay_slots): Output extra '\n'.
* alpha.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE):
* i386.h, i386/osfrose.h, i386/svr3dbx.h, m68k.h, sparc.h:
* arc.h, m32r.h (ASM_OUTPUT_LOOP_ALIGN): replace with:
* i960.h, m88k.h: (ASM_OUTPUT_ALIGN_CODE): Replace with:
* ns32k/encore.h, ns32k/merlin.h, ns32k.h, ns32k/sequent.h:
* ns32k/tek6000.h: Likewise.
* i386/gas.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE):
* i386.md (casesi+1): Use ASM_OUTPUT_ALIGN instead of
I'm not really sure what it does, but at lest one effect is that lots of
lines that before was '.align 2,0x90' now becomes '.align 2'. This causes
problems for NetBSD since it uses a.out, and gas treat .align slightly
different for a.out and elf. For a.out 'align 2' means that the 2 least
significant bits must be 0, i.e an alignment of 4 bytes, so it's possible
that the .align in code like
produce output. And it's now 0 instead of 0x90 (nop).