Bug 18968 - make check fails on arm embedded NAS with no neon fpu
Summary: make check fails on arm embedded NAS with no neon fpu
Status: RESOLVED WONTFIX
Alias: None
Product: binutils
Classification: Unclassified
Component: binutils (show other bugs)
Version: 2.25
: P2 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-09-15 22:00 UTC by C E Macfarlane
Modified: 2015-09-16 15:41 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description C E Macfarlane 2015-09-15 22:00:33 UTC
Hi, trying to build binutils on an embedded arm device, a Zyxel NSA221.  After some trial and error, I've now got a configuration that builds ...

export CFLAGS='-I/opt/include -I/opt/share/include'; export LDFLAGS='-L/opt/lib -L/opt/share/lib -L/opt/arm-none-linux-gnueabi/lib'; ./configure --prefix=/opt --with-newlib --with-gmp=/opt/share/ --with-mpfr=/opt/share/ --with-mpc=/opt/share/

... but after an apparently successful make (no -k switch), when I come to testing, there are errors.  I can't decide whether the errors are being caused by the absence of a neon fpu, or something more obscure and/or important.

Can someone advise as to whether I can proceed to make install or that this serious enough to halt installation until fixed?

~/build/binutils-2.25.1 # make -k check
make[1]: Entering directory `/root/build/binutils-2.25.1'
make[2]: Entering directory `/root/build/binutils-2.25.1/bfd'
make  check-recursive
make[3]: Entering directory `/root/build/binutils-2.25.1/bfd'
Making check in doc
make[4]: Entering directory `/root/build/binutils-2.25.1/bfd/doc'
make[4]: Nothing to be done for `check'.
make[4]: Leaving directory `/root/build/binutils-2.25.1/bfd/doc'
Making check in po
make[4]: Entering directory `/root/build/binutils-2.25.1/bfd/po'
make[4]: Nothing to be done for `check'.
make[4]: Leaving directory `/root/build/binutils-2.25.1/bfd/po'
make[4]: Entering directory `/root/build/binutils-2.25.1/bfd'
make[4]: Leaving directory `/root/build/binutils-2.25.1/bfd'
make[3]: Leaving directory `/root/build/binutils-2.25.1/bfd'
make[2]: Leaving directory `/root/build/binutils-2.25.1/bfd'
make[2]: Entering directory `/root/build/binutils-2.25.1/opcodes'
Making check in .
make[3]: Entering directory `/root/build/binutils-2.25.1/opcodes'
make[3]: Leaving directory `/root/build/binutils-2.25.1/opcodes'
Making check in po
make[3]: Entering directory `/root/build/binutils-2.25.1/opcodes/po'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/root/build/binutils-2.25.1/opcodes/po'
make[2]: Leaving directory `/root/build/binutils-2.25.1/opcodes'
make[2]: Entering directory `/root/build/binutils-2.25.1/binutils'
make  check-recursive
make[3]: Entering directory `/root/build/binutils-2.25.1/binutils'
Making check in doc
make[4]: Entering directory `/root/build/binutils-2.25.1/binutils/doc'
make[4]: Nothing to be done for `check'.
make[4]: Leaving directory `/root/build/binutils-2.25.1/binutils/doc'
Making check in po
make[4]: Entering directory `/root/build/binutils-2.25.1/binutils/po'
make[4]: Nothing to be done for `check'.
make[4]: Leaving directory `/root/build/binutils-2.25.1/binutils/po'
make[4]: Entering directory `/root/build/binutils-2.25.1/binutils'
make  check-DEJAGNU
make[5]: Entering directory `/root/build/binutils-2.25.1/binutils'
srcdir=`cd . && pwd`; export srcdir; \
r=`pwd`; export r; \
LC_ALL=C; export LC_ALL; \
EXPECT=expect; export EXPECT; \
runtest=runtest; \
if /opt/bin/bash -c "$runtest --version" > /dev/null 2>&1; then \
  CC_FOR_TARGET="gcc" CFLAGS_FOR_TARGET="-I/opt/include -I/opt/share/include" \
        $runtest --tool binutils --srcdir ${srcdir}/testsuite \
                ; \
else echo "WARNING: could not find \`runtest'" 1>&2; :;\
fi
WARNING: could not find `runtest'
make[5]: Leaving directory `/root/build/binutils-2.25.1/binutils'
make[4]: Leaving directory `/root/build/binutils-2.25.1/binutils'
make[3]: Leaving directory `/root/build/binutils-2.25.1/binutils'
make[2]: Leaving directory `/root/build/binutils-2.25.1/binutils'
make[2]: Entering directory `/root/build/binutils-2.25.1/etc'
make[2]: Nothing to be done for `check'.
make[2]: Leaving directory `/root/build/binutils-2.25.1/etc'
make[2]: Entering directory `/root/build/binutils-2.25.1/gas'
Making check in doc
make[3]: Entering directory `/root/build/binutils-2.25.1/gas/doc'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/root/build/binutils-2.25.1/gas/doc'
Making check in po
make[3]: Entering directory `/root/build/binutils-2.25.1/gas/po'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/root/build/binutils-2.25.1/gas/po'
make[3]: Entering directory `/root/build/binutils-2.25.1/gas'
make  check-DEJAGNU
make[4]: Entering directory `/root/build/binutils-2.25.1/gas'
if [ -d testsuite ]; then \
  true; \
else \
  mkdir testsuite; \
fi
rm -f testsuite/site.exp
cp site.exp testsuite/site.exp
rootme=`pwd`; export rootme; \
srcdir=`cd .; pwd` ; export srcdir ; \
LC_ALL=C; export LC_ALL; \
EXPECT=expect ; export EXPECT ; \
runtest=runtest; \
cd testsuite; \
if /opt/bin/bash -c "$runtest --version" > /dev/null 2>&1; then \
  $runtest --tool gas --srcdir ${srcdir}/testsuite \
        ; \
else echo "WARNING: could not find \`runtest'" 1>&2; :;\
fi
WARNING: could not find `runtest'
make[4]: Leaving directory `/root/build/binutils-2.25.1/gas'
make[3]: Leaving directory `/root/build/binutils-2.25.1/gas'
make[2]: Leaving directory `/root/build/binutils-2.25.1/gas'
make[2]: Entering directory `/root/build/binutils-2.25.1/gprof'
make  check-recursive
make[3]: Entering directory `/root/build/binutils-2.25.1/gprof'
Making check in po
make[4]: Entering directory `/root/build/binutils-2.25.1/gprof/po'
make[4]: Nothing to be done for `check'.
make[4]: Leaving directory `/root/build/binutils-2.25.1/gprof/po'
make[4]: Entering directory `/root/build/binutils-2.25.1/gprof'
make[4]: Leaving directory `/root/build/binutils-2.25.1/gprof'
make[3]: Leaving directory `/root/build/binutils-2.25.1/gprof'
make[2]: Leaving directory `/root/build/binutils-2.25.1/gprof'
make[2]: Entering directory `/root/build/binutils-2.25.1/intl'
make[2]: Nothing to be done for `check'.
make[2]: Leaving directory `/root/build/binutils-2.25.1/intl'
make[2]: Entering directory `/root/build/binutils-2.25.1/ld'
make  check-recursive
make[3]: Entering directory `/root/build/binutils-2.25.1/ld'
Making check in po
make[4]: Entering directory `/root/build/binutils-2.25.1/ld/po'
make[4]: Nothing to be done for `check'.
make[4]: Leaving directory `/root/build/binutils-2.25.1/ld/po'
make[4]: Entering directory `/root/build/binutils-2.25.1/ld'
make  check-DEJAGNU
make[5]: Entering directory `/root/build/binutils-2.25.1/ld'
srcroot=`cd . && pwd`; export srcroot; \
r=`pwd`; export r; \
LC_ALL=C; export LC_ALL; \
EXPECT=expect; export EXPECT; \
runtest=runtest; \
if /opt/bin/bash -c "$runtest --version" > /dev/null 2>&1; then \
  $runtest --tool ld --srcdir ${srcroot}/testsuite \
        CC="gcc" CFLAGS="-I/opt/include -I/opt/share/include" \
        CXX="g++" CXXFLAGS="-g -O2" \
        CC_FOR_HOST="gcc" CFLAGS_FOR_HOST="-I/opt/include -I/opt/share/include" \
        OFILES="ldgram.o ldlex-wrapper.o lexsup.o ldlang.o mri.o ldctor.o ldmain.o plugin.o ldwrite.o ldexp.o  ldemul.o ldver.o ldmisc.o ldfile.o ldcref.o earmelf_linux_eabi.o earmelfb_linux_eabi.o  ldbuildid.o" BFDLIB="../bfd/.libs/libbfd.a" \
        LIBIBERTY="../libiberty/libiberty.a " LIBS="-lz -ldl -ldl " \
        DO_COMPARE="`echo 'cmp --ignore-initial=16 $f1 $f2' | sed -e 's,\\$,,g'`" \
        ; \
else echo "WARNING: could not find \`runtest'" 1>&2; :;\
fi
WARNING: could not find `runtest'
make[5]: Leaving directory `/root/build/binutils-2.25.1/ld'
make[4]: Leaving directory `/root/build/binutils-2.25.1/ld'
make[3]: Leaving directory `/root/build/binutils-2.25.1/ld'
make[2]: Leaving directory `/root/build/binutils-2.25.1/ld'
make[2]: Entering directory `/root/build/binutils-2.25.1/libiberty'
make[3]: Entering directory `/root/build/binutils-2.25.1/libiberty/testsuite'
./test-demangle < ./demangle-expected
./test-demangle: 897 tests, 0 failures
./test-demangle < ./d-demangle-expected
FAIL at line 670, options --format=dlang:
in:  _D8demangle17__T4testVde0A8P6Zv
out: demangle.test!(0.00000)
exp: demangle.test!(42.0000)
FAIL at line 674, options --format=dlang:
in:  _D8demangle16__T4testVdeA8P2Zv
out: demangle.test!(0.00000)
exp: demangle.test!(42.0000)
FAIL at line 678, options --format=dlang:
in:  _D8demangle18__T4testVdeN0A8P6Zv
out: demangle.test!(0.00000)
exp: demangle.test!(-42.0000)
FAIL at line 682, options --format=dlang:
in:  _D8demangle31__T4testVde0F6E978D4FDF3B646P7Zv
out: demangle.test!(4.46677e+08)
exp: demangle.test!(123.456)
FAIL at line 698, options --format=dlang:
in:  _D8demangle23__T4testVfe0FFFFFFP128Zv
out: demangle.test!(-5.36871e+08)
exp: demangle.test!(3.40282e+38)
FAIL at line 702, options --format=dlang:
in:  _D8demangle32__T4testVde0FFFFFFFFFFFFF8P1024Zv
out: demangle.test!(-1.00000)
exp: demangle.test!(1.79769e+308)
FAIL at line 706, options --format=dlang:
in:  _D8demangle19__T4testVfe08PN125Zv
out: demangle.test!(0.00000)
exp: demangle.test!(1.17549e-38)
FAIL at line 710, options --format=dlang:
in:  _D8demangle20__T4testVde08PN1021Zv
out: demangle.test!(0.00000)
exp: demangle.test!(2.22507e-308)
FAIL at line 714, options --format=dlang:
in:  _D8demangle51__T4testVrc0C4CCCCCCCCCCCCCDP4c0B666666666666666P6Zv
out: demangle.test!(-1.71799e+09+-8.58993e+08i)
exp: demangle.test!(12.3000+45.6000i)
FAIL at line 718, options --format=dlang:
in:  _D8demangle52__T4testVrcN0C4CCCCCCCCCCCCCDP4c0B666666666666666P6Zv
out: demangle.test!(-1.71799e+09+-8.58993e+08i)
exp: demangle.test!(-12.3000+45.6000i)
FAIL at line 738, options --format=dlang:
in:  _D8demangle25__T4testVAdA2e08P1eN08P1Zv
out: demangle.test!([0.00000, 0.00000])
exp: demangle.test!([1.00000, -1.00000])
./test-demangle: 230 tests, 11 failures
make[3]: *** [check-d-demangle] Error 1
./test-pexecute
./test-expandargv
PASS: test-expandargv-0.
PASS: test-expandargv-1.
PASS: test-expandargv-2.
PASS: test-expandargv-3.
PASS: test-expandargv-4.
PASS: test-expandargv-5.
PASS: test-expandargv-6.
make[3]: Target `check' not remade because of errors.
make[3]: Leaving directory `/root/build/binutils-2.25.1/libiberty/testsuite'
make[2]: *** [check-subdir] Error 2
make[2]: Target `check' not remade because of errors.
make[2]: Leaving directory `/root/build/binutils-2.25.1/libiberty'
make[1]: *** [check-libiberty] Error 2
make[1]: Target `check-host' not remade because of errors.
make[1]: Nothing to be done for `check-target'.
make[1]: Leaving directory `/root/build/binutils-2.25.1'
make: *** [do-check] Error 2
make: Target `check' not remade because of errors.
~/build/binutils-2.25.1 #
Comment 1 Nick Clifton 2015-09-16 09:11:58 UTC
Hi C E Macfarlane,

> ... but after an apparently successful make (no -k switch), when I come to
> testing, there are errors.  I can't decide whether the errors are being
> caused by the absence of a neon fpu, or something more obscure and/or
> important.
> 
> Can someone advise as to whether I can proceed to make install or that this
> serious enough to halt installation until fixed?

Good news / Bad news ...

The bad news is that this is the wrong place to file this bug report.  The errors are being reported as part of the libiberty package, which is part of the gcc project rather than the binutils project.  (Although both prokjects do make use of libiberty).  So really you ought to refile this bug report with gcc.  But...

The good news is that these failures are not serious.  Certainly not enough to stop your installation:

> FAIL at line 670, options --format=dlang:
> in:  _D8demangle17__T4testVde0A8P6Zv
> out: demangle.test!(0.00000)
> exp: demangle.test!(42.0000)

The failures are all with the name demangler, that is the functions that convert mangled C++ (or Java, or whatever) symbol names into fully qualified names.  So whilst this feature is useful if you are going to be debugging programs written in high level languages that use name mangling, it is not at all important for the running of your system.

Cheers
  Nick
Comment 2 C E Macfarlane 2015-09-16 09:39:55 UTC
Thanks, see below ...

www.macfh.co.uk/CEMH.html

>     Good news / Bad news ...
>     
>     The bad news is that this is the wrong place to file this bug 
>     report.

Then can you point me to where I should report it?

>     The good news is that these failures are not serious.  
>     Certainly not enough to
>     stop your installation:
>     
>     > FAIL at line 670, options --format=dlang:
>     > in:  _D8demangle17__T4testVde0A8P6Zv
>     > out: demangle.test!(0.00000)
>     > exp: demangle.test!(42.0000)
>     
>     The failures are all with the name demangler, that is the 
>     functions that
>     convert mangled C++ (or Java, or whatever) symbol names into 
>     fully qualified
>     names.  So whilst this feature is useful if you are going to 
>     be debugging
>     programs written in high level languages that use name 
>     mangling, it is not at
>     all important for the running of your system.

Great!  Exactly what I wanted to hear.  Thanks!
Comment 3 Nick Clifton 2015-09-16 14:44:54 UTC
Hi C E Macfarlane,

> >     The bad news is that this is the wrong place to file this bug 
> >     report.
> 
> Then can you point me to where I should report it?

The gcc bugzilla system is probably the best place:

https://gcc.gnu.org/bugzilla/show_bug.cgi

Cheers
  Nick
Comment 4 C E Macfarlane 2015-09-16 15:41:05 UTC
Many thanks!

www.macfh.co.uk/CEMH.html

>     > Then can you point me to where I should report it?
>     
>     The gcc bugzilla system is probably the best place:
>     
>     https://gcc.gnu.org/bugzilla/show_bug.cgi