From

http://gcc.gnu.org/ml/gcc-testresults/2006-03/msg00084.html

there are

                === libmudflap tests ===


Running target unix
FAIL: libmudflap.c++/pass41-frag.cxx (test for excess errors)
WARNING: libmudflap.c++/pass41-frag.cxx compilation failed to produce
executable
FAIL: libmudflap.c++/pass41-frag.cxx (-O) (test for excess errors)
WARNING: libmudflap.c++/pass41-frag.cxx (-O) compilation failed to produce
executable
FAIL: libmudflap.c++/pass41-frag.cxx (-O2) (test for excess errors)
WARNING: libmudflap.c++/pass41-frag.cxx (-O2) compilation failed to produce
executable
FAIL: libmudflap.c++/pass41-frag.cxx (-O3) (test for excess errors)
WARNING: libmudflap.c++/pass41-frag.cxx (-O3) compilation failed to produce
executable
FAIL: ctors-12 linkage 
FAIL: ctors-21 linkage 
WARNING: program timed out.
FAIL: ctors-12 execution 
WARNING: program timed out.
FAIL: ctors-21 execution 
FAIL: ctors-12 linkage -static
FAIL: ctors-21 linkage -static
WARNING: program timed out.
FAIL: ctors-12 execution -static
WARNING: program timed out.
FAIL: ctors-21 execution -static
FAIL: ctors-12 linkage -O2
FAIL: ctors-21 linkage -O2
WARNING: program timed out.
FAIL: ctors-12 execution -O2
WARNING: program timed out.
FAIL: ctors-21 execution -O2
FAIL: ctors-12 linkage -O3
FAIL: ctors-21 linkage -O3
WARNING: program timed out.
FAIL: ctors-12 execution -O3
WARNING: program timed out.
FAIL: ctors-21 execution -O3

But Linux/x86 and Linux/x86-64 have no problems. The error message looks like

pass41-frag.o: In function `global constructors keyed to
0_main':/net/gnu-13/export/gnu/src/gcc-4.1-blended/gcc/libmudflap/testsuite/libmudflap.c++/pass41-frag.cxx:13:
undefined reference to `std::ios_base::_S_local_word_size'
:/net/gnu-13/export/gnu/src/gcc-4.1-blended/gcc/libmudflap/testsuite/libmudflap.c++/pass41-frag.cxx:13:
undefined reference to `std::ios_base::_S_local_word_size'
:/net/gnu-13/export/gnu/src/gcc-4.1-blended/gcc/libmudflap/testsuite/libmudflap.c++/pass41-frag.cxx:13:
undefined reference to `std::__ios_flags::_S_trunc'
:/net/gnu-13/export/gnu/src/gcc-4.1-blended/gcc/libmudflap/testsuite/libmudflap.c++/pass41-frag.cxx:13:
undefined reference to `std::__ios_flags::_S_trunc'
:/net/gnu-13/export/gnu/src/gcc-4.1-blended/gcc/libmudflap/testsuite/libmudflap.c++/pass41-frag.cxx:13:
undefined reference to `std::__ios_flags::_S_out'
...

Those undefined symbols are from things like:

 struct __ios_flags
  {
    typedef short __int_type;

    static const __int_type _S_boolalpha = 0x0001;
    static const __int_type _S_dec = 0x0002;
    static const __int_type _S_fixed = 0x0004;
...

Mudflap generates

        .mii
        addl r35 = @ltoffx(_ZNSt11__ios_flags12_S_boolalphaE#), r1
        addl r38 = @ltoffx(.LC72), r1
        ;;
        nop 0
        .mmb
        ld8.mov r35 = [r35], _ZNSt11__ios_flags12_S_boolalphaE#
        ld8.mov r38 = [r38], .LC72
        br.call.sptk.many b0 = __mf_register#

I don't see why it should even bother. This problem doesn't exist in 4.2. Does
anyone know which patch fixes it?


-- 
           Summary: [4.1]: libmudflap failures on ia64
           Product: gcc
           Version: 4.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: hjl at lucon dot org
 GCC build triplet: ia64-unknown-linux-gnu
  GCC host triplet: ia64-unknown-linux-gnu
GCC target triplet: ia64-unknown-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26532

Reply via email to