[Ultrix V4.3] Unexpected test failures
Rainer Orth
ro@TechFak.Uni-Bielefeld.DE
Mon May 10 08:40:00 GMT 1999
After I successfully bootstrapped egcs 2.93.20 19990430 on Ultrix V4.3, I
had a look at those test failures which don't occur on other platforms:
See http://egcs.cygnus.com/ml/egcs-testresults/1999-05/msg00057.html for
the complete results.
* gcc.c-torture/compile/zero-strct-1.c:
FAIL: gcc.c-torture/compile/zero-strct-1.c, -O1
FAIL: gcc.c-torture/compile/zero-strct-1.c, -O2
FAIL: gcc.c-torture/compile/zero-strct-1.c, -O3 -fomit-frame-pointer
FAIL: gcc.c-torture/compile/zero-strct-1.c, -O3 -g
FAIL: gcc.c-torture/compile/zero-strct-1.c, -Os
This fails with an as warning:
as1: Warning: /tmp/ccoCiaaa.s, line 1: Macro instruction used
as1: Warning: /tmp/ccoCiaaa.s, line 1: nop required before
0x03e00008 jr $31
triggered by
lw $31,16($sp)
#nop
.set noreorder
.set nomacro
j $31
addu $sp,$sp,24
.set macro
.set reorder
The same assembler source works without problems with MIPS 3.0 as from
Ultrix V4.5.
* Missing support for weak symbols shows up in several failures:
FAIL: gcc.dg/special/weak-1.c (test for excess errors)
/usr/lib/cmplrs/cc/ld:
weak-1a.o: foo: multiply defined
FAIL: gcc.dg/special/weak-2.c (test for excess errors)
/usr/lib/cmplrs/cc/ld:
weak-2b.o: foo: multiply defined
FAIL: gcc.dg/special/alias-1.c (test for excess errors)
/usr/lib/cmplrs/cc/ld:
Undefined:
foo
FAIL: gcc.dg/special/wkali-1.c (test for excess errors)
/usr/lib/cmplrs/cc/ld:
Undefined:
foo
FAIL: wkali-2a.o
wkali-2a.c:3: warning: alias definitions not supported in this configuration; ignored
gcc.dg/special/ecos.exp (check_weak_available) claims that all mips
targets support weak symbols, which isn't true for Ultrix V4.3: the MIPS
2.1 assembler included in that version doesn't support .weakext, while
MIPS 3.0 as (included in Ultrix V4.5, and to the best of my knowledge
introduced in Ultrix V4.3A) does.
This raises the question how best to handle such a case: one would like
to support weak symbols where possible, but not produce errors if as/ld
don't include this support. Should this be checked by a target specific
autoconf test?
FAIL: g++.pt/static3.C (test for excess errors)
/usr/lib/cmplrs/cc/ld:
Undefined:
A<int>::arr
This test is expected to fail on targets without weak symbols (via XFAIL
in static3.C), but it were probably best to use a (generalized) version
of check_weak_available to handle this.
FAIL: g++.pt/static6.C (test for excess errors)
/usr/lib/cmplrs/cc/ld:
Undefined:
A<int>::l
This seems to be the same issue, but there's no XFAIL in the source.
* This causes cc1plus to crash:
FAIL: g++.pt/crash1.C (test for excess errors)
pid 547 (cc1plus) was killed on an unaligned access, at pc 0x60067c
* Internal assembler error in all Objective C tests:
FAIL: objc/execute/bf-1.m compilation, -O
as0: Internal: bf-1.m, line 1: scNil to scNil
The problem persists with MIPS 3.0 as. I have no idea how to attack
this, since the line number info is useless (as[01] always emit
`line 1'!), and don't care too much, as I don't know objc at all.
Rainer
More information about the Gcc-bugs
mailing list