• dolfin FTBFS on mips64el: ld error adding symbols: bad value

    From Drew Parsons@21:1/5 to All on Wed Aug 19 17:10:02 2020
    Can anyone help with the mips64el build of dolfin? It's failing when
    building python extensions:

    [ 95%] Building CXX object CMakeFiles/cpp.dir/src/MPICommWrapper.cpp.o /usr/bin/c++ -DDOLFIN_VERSION=\"2019.2.0.dev0\" -DHAS_CHOLMOD
    -DHAS_HDF5 -DHAS_MPI -DHAS_PETSC -DHAS_PYBIND11_MPI4PY
    -DHAS_PYBIND11_PETSC4PY -DHAS_SCOTCH -DHAS_SLEPC -DHAS_UMFPACK
    -DHAS_ZLIB -DNDEBUG -Dcpp_EXPORTS -I/usr/lib/petscdir/petsc64-3.13/mips64el-linux-gnuabi64-real/lib/python3/dist-packages/petsc4py/include
    -I/usr/lib/python3/dist-packages/mpi4py/include -isystem
    /usr/include/python3.8 -isystem
    /usr/lib/python3/dist-packages/ffc/backends/ufc -isystem
    /usr/include/eigen3 -isystem /usr/include/hdf5/openmpi -isystem /usr/lib/mips64el-linux-gnuabi64/openmpi/include/openmpi -isystem /usr/lib/mips64el-linux-gnuabi64/openmpi/include -isystem /usr/lib/petscdir/petsc64-3.13/mips64el-linux-gnuabi64-real/include
    -isystem
    /usr/lib/slepcdir/slepc64-3.13/mips64el-linux-gnuabi64-real/include -g
    -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong
    -Wformat -Werror=format-security -isystem /<<PKGBUILDDIR>>/debian/tmp64/usr/include
    -DVERSION_INFO=\"2019.2.0.dev0\" -O3 -DNDEBUG -fPIC -fvisibility=hidden
    -std=c++14 -flto -fno-fat-lto-objects -fvisibility=hidden -std=c++11 -o CMakeFiles/cpp.dir/src/MPICommWrapper.cpp.o -c "/<<PKGBUILDDIR>>/python/src/MPICommWrapper.cpp"
    [100%] Linking CXX shared library ../lib.linux-mips64-3.8/dolfin/cpp.cpython-38-mips64el-linux-gnuabi64.so /usr/bin/cmake -E cmake_link_script CMakeFiles/cpp.dir/link.txt
    --verbose=1
    /usr/bin/c++ -fPIC -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -isystem /<<PKGBUILDDIR>>/debian/tmp64/usr/include
    -DVERSION_INFO=\"2019.2.0.dev0\" -O3 -DNDEBUG -Wl,-z,relro -shared -Wl,-soname,cpp.cpython-38-mips64el-linux-gnuabi64.so -o ../lib.linux-mips64-3.8/dolfin/cpp.cpython-38-mips64el-linux-gnuabi64.so CMakeFiles/cpp.dir/src/dolfin.cpp.o
    CMakeFiles/cpp.dir/src/parameter.cpp.o
    CMakeFiles/cpp.dir/src/adaptivity.cpp.o CMakeFiles/cpp.dir/src/ale.cpp.o CMakeFiles/cpp.dir/src/common.cpp.o CMakeFiles/cpp.dir/src/fem.cpp.o CMakeFiles/cpp.dir/src/function.cpp.o
    CMakeFiles/cpp.dir/src/generation.cpp.o
    CMakeFiles/cpp.dir/src/geometry.cpp.o CMakeFiles/cpp.dir/src/graph.cpp.o CMakeFiles/cpp.dir/src/log.cpp.o CMakeFiles/cpp.dir/src/math.cpp.o CMakeFiles/cpp.dir/src/mesh.cpp.o
    CMakeFiles/cpp.dir/src/multistage.cpp.o CMakeFiles/cpp.dir/src/ts.cpp.o CMakeFiles/cpp.dir/src/io.cpp.o CMakeFiles/cpp.dir/src/la.cpp.o CMakeFiles/cpp.dir/src/nls.cpp.o CMakeFiles/cpp.dir/src/refinement.cpp.o CMakeFiles/cpp.dir/src/MPICommWrapper.cpp.o -Wl,-rpath,"/<<PKGBUILDDIR>>/debian/tmp64/usr/lib/mips64el-linux-gnuabi64:/usr/lib/mips64el-linux-gnuabi64/hdf5/openmpi:/usr/lib/slepcdir/slepc64-3.13/mips64el-linux-gnuabi64-real/lib:/usr/lib/petscdir/petsc64-3.13/mips64el-linux-gnuabi64-real/lib:/usr/
    lib/mips64el-linux-gnuabi64/openmpi/lib"
    -flto "/<<PKGBUILDDIR>>/debian/tmp64/usr/lib/mips64el-linux-gnuabi64/libdolfin64.so.2019.2.0.dev0"
    /usr/lib/mips64el-linux-gnuabi64/libboost_timer.so /usr/lib/mips64el-linux-gnuabi64/libboost_chrono.so /usr/lib/mips64el-linux-gnuabi64/hdf5/openmpi/libhdf5.so -lsz -lz -ldl
    -lm /usr/lib/slepcdir/slepc64-3.13/mips64el-linux-gnuabi64-real/lib/libslepc64_real.so
    /usr/lib/petscdir/petsc64-3.13/mips64el-linux-gnuabi64-real/lib/libpetsc64_real.so
    /usr/lib/mips64el-linux-gnuabi64/openmpi/lib/libmpi_cxx.so /usr/lib/mips64el-linux-gnuabi64/openmpi/lib/libmpi.so
    /usr/bin/ld: /tmp/cpp.cpython-38-mips64el-linux-gnuabi64.so.AnBotY.ltrans29.ltrans.o: .symtab local symbol at index 482 (>= sh_info of 99)
    /usr/bin/ld: /tmp/cpp.cpython-38-mips64el-linux-gnuabi64.so.AnBotY.ltrans29.ltrans.o:
    error adding symbols: bad value
    collect2: error: ld returned 1 exit status

    Full build log at https://buildd.debian.org/status/fetch.php?pkg=dolfin&arch=mips64el&ver=2019.2.0%7Egit20200218.027d9cc-14&stamp=1597824051&raw=0
    (see https://buildd.debian.org/status/logs.php?pkg=dolfin&arch=mips64el
    )

    No other arch is failing like this. I have no idea what to do with an
    error like this.

    Drew

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Drew Parsons@21:1/5 to Drew Parsons on Sat Aug 22 13:00:02 2020
    On 2020-08-19 23:08, Drew Parsons wrote:
    Can anyone help with the mips64el build of dolfin? It's failing when building python extensions:

    /usr/bin/ld: /tmp/cpp.cpython-38-mips64el-linux-gnuabi64.so.AnBotY.ltrans29.ltrans.o: .symtab local symbol at index 482 (>= sh_info of 99)
    /usr/bin/ld: /tmp/cpp.cpython-38-mips64el-linux-gnuabi64.so.AnBotY.ltrans29.ltrans.o: error adding symbols: bad value
    collect2: error: ld returned 1 exit status

    (see https://buildd.debian.org/status/logs.php?pkg=dolfin&arch=mips64el
    )


    There was a comment by private email that this kind of error happens
    when the disk is full, which would be the /tmp partition.

    I guess if /tmp was full on the buildd then other packages would
    probably also fail to build, not just dolfinx. Can a full /tmp
    partition be excluded as the cause of the build failure?

    Drew

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Drew Parsons@21:1/5 to Drew Parsons on Mon Aug 24 18:30:02 2020
    On 2020-08-22 18:52, Drew Parsons wrote:
    On 2020-08-19 23:08, Drew Parsons wrote:
    Can anyone help with the mips64el build of dolfin? It's failing when
    building python extensions:

    /usr/bin/ld:
    /tmp/cpp.cpython-38-mips64el-linux-gnuabi64.so.AnBotY.ltrans29.ltrans.o:
    .symtab local symbol at index 482 (>= sh_info of 99)
    /usr/bin/ld:
    /tmp/cpp.cpython-38-mips64el-linux-gnuabi64.so.AnBotY.ltrans29.ltrans.o:
    error adding symbols: bad value
    collect2: error: ld returned 1 exit status

    (see
    https://buildd.debian.org/status/logs.php?pkg=dolfin&arch=mips64el )


    The error is reproducible on porterbox (sid_mips64el-dchroot chroot on eller.debian.org)

    If the problem is not a full /tmp partition, could the error be caused
    by some inconsistent library caught badly in the middle of the gcc-10 transition? How to know?

    Drew

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From YunQiang Su@21:1/5 to All on Tue Aug 25 02:40:02 2020
    Drew Parsons <dparsons@debian.org> 于2020年8月25日周二 上午12:29写道:

    On 2020-08-22 18:52, Drew Parsons wrote:
    On 2020-08-19 23:08, Drew Parsons wrote:
    Can anyone help with the mips64el build of dolfin? It's failing when
    building python extensions:

    /usr/bin/ld:
    /tmp/cpp.cpython-38-mips64el-linux-gnuabi64.so.AnBotY.ltrans29.ltrans.o: >> .symtab local symbol at index 482 (>= sh_info of 99)
    /usr/bin/ld:
    /tmp/cpp.cpython-38-mips64el-linux-gnuabi64.so.AnBotY.ltrans29.ltrans.o: >> error adding symbols: bad value
    collect2: error: ld returned 1 exit status

    (see
    https://buildd.debian.org/status/logs.php?pkg=dolfin&arch=mips64el )


    The error is reproducible on porterbox (sid_mips64el-dchroot chroot on eller.debian.org)

    If the problem is not a full /tmp partition, could the error be caused
    by some inconsistent library caught badly in the middle of the gcc-10 transition? How to know?

    Maybe. Let's have a check.
    I think that we can have a try to build the previous version.
    I will do it.


    Drew



    --
    YunQiang Su

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Drew Parsons@21:1/5 to YunQiang Su on Tue Sep 1 08:30:01 2020
    On 2020-08-25 08:31, YunQiang Su wrote:
    Drew Parsons <dparsons@debian.org> 于2020年8月25日周二 上午12:29写道:

    On 2020-08-22 18:52, Drew Parsons wrote:
    On 2020-08-19 23:08, Drew Parsons wrote:
    Can anyone help with the mips64el build of dolfin? It's failing when
    building python extensions:

    /usr/bin/ld:
    /tmp/cpp.cpython-38-mips64el-linux-gnuabi64.so.AnBotY.ltrans29.ltrans.o: >> >> .symtab local symbol at index 482 (>= sh_info of 99)
    /usr/bin/ld:
    ...
    If the problem is not a full /tmp partition, could the error be caused
    by some inconsistent library caught badly in the middle of the gcc-10
    transition? How to know?

    Maybe. Let's have a check.
    I think that we can have a try to build the previous version.
    I will do it.


    On irc, Jessica Clarke [jrtc27] suggested LTO (-flto) might be the
    problem.

    Sure enough, dolfin does build successfully on mip64el if I apply
    -fno-lto

    Specifically, the -flto was coming from pybind11, not from the dolfin configuration itself. It's the same pybind11 version though (2.5.0), so
    not still clear why the mips64el dolfin build started failing so
    suddenly.

    The last successful dolfin build did use -flto. The timing of the
    failures roughly coincides with gcc-10 becoming default. Does it mean
    gcc-10 is doing something different with LTO, that's caused a regression
    on mips64el?

    If so, then the problem might show up on mip64el in other packages that
    use pybind11.

    Not sure if -flto or pybind11 needs deeper investigation on mip64el, but
    as a workaround I'll configure dolfin to instruct pybind11 to use
    -fno-lto.

    Drew

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)