M2 icon indicating copy to clipboard operation
M2 copied to clipboard

cmake build fails on aarch64 with redhat's gcc-toolset-14 - unconditional link with quadmath

Open mkoeppe opened this issue 5 months ago • 0 comments

Unconditionally linking with quadmath, introduced in #2722, causes this linker error on this platform.

  [macaulay2-1.25.06]   [spkg-install] [417/420] Linking CXX executable usr-dist/aarch64-Linux--/bin/M2-binary
  [macaulay2-1.25.06]   [spkg-install] FAILED: usr-dist/aarch64-Linux--/bin/M2-binary 
  [macaulay2-1.25.06]   [spkg-install] : && /host/sage-manylinux_2_28_aarch64/libexec/ccache/g++  -std=gnu++11 -g -O2 -O3 -DNDEBUG -Wl,-rpath-link,/host/sage-manylinux_2_28_aarch64/lib -L/host/sage-manylinux_2_28_aarch64/lib -Wl,-rpath,/host/sage-manylinux_2_28_aarch64/lib -Wl,-rpath-link,/host/sage-manylinux_2_28_aarch64/lib -L/host/sage-manylinux_2_28_aarch64/lib -Wl,-rpath,/host/sage-manylinux_2_28_aarch64/lib     -march=native -g3 -L/host/sage-manylinux_2_28_aarch64/var/tmp/sage/build/macaulay2-1.25.06/src/M2/BUILD/build/usr-host/lib -Wl,--dependency-file=Macaulay2/bin/CMakeFiles/M2-binary.dir/link.d Macaulay2/system/CMakeFiles/M2-supervisor.dir/supervisor.cpp.o Macaulay2/system/CMakeFiles/M2-supervisor.dir/m2file.cpp.o Macaulay2/system/CMakeFiles/M2-supervisor.dir/tests.cpp.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/M2types.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/M2lib.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/M2mem.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/scclib.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/memdebug.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/debug.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/gmp_aux.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/gdbm_interface.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/arithmetic-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/atomic-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/M2-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/system-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/strings-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/varstrin-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/strings1-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/errio-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/vararray-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/ctype-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/nets-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/varnets-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/interrupts-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/pthread0-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/stdiop0-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/gmp-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/ballarith-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/engine-tmp.cc.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/xml-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/stdio0-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/parse-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/expr-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/stdio-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/stdiop-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/err-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/gmp1-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/tokens-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/getline-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/lex-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/parser-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/binding-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/basic-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/common-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/util-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/convertr-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/struct-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/classes-tmp.cc.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/buckets-tmp.cc.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/equality-tmp.cc.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/hashtables-tmp.cc.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/regex-tmp.cc.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/debugging-tmp.cc.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/evaluate-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/sets-tmp.cc.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/mysqldummy-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/pthread-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/actors-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/actors2-tmp.cc.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/actors3-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/actors4-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/xmlactors-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/actors5-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/chrono-tmp.cc.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/profiler-tmp.cc.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/threads-tmp.cc.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/interface-tmp.cc.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/interface2-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/monoid-tmp.cc.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/monomial_ordering-tmp.cc.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/texmacs-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/boostmath-tmp.cc.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/atomic2-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/ffi-tmp.c.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/interp-tmp.cc.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/version-tmp.cc.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/boost-regex.cpp.o Macaulay2/d/CMakeFiles/M2-interpreter.dir/xml-c.c.o Macaulay2/bin/CMakeFiles/M2-binary.dir/timestamp.cpp.o Macaulay2/bin/CMakeFiles/M2-binary.dir/main.cpp.o Macaulay2/bin/CMakeFiles/M2-binary.dir/startup.c.o -o usr-dist/aarch64-Linux--/bin/M2-binary  -Wl,-rpath,/host/sage-manylinux_2_28_aarch64/lib::::::::::::::  Macaulay2/e/libM2-engine.a  -ldl  -ldl  /usr/lib64/libffi.so  -lquadmath  /host/sage-manylinux_2_28_aarch64/lib/libfflas.so  /host/sage-manylinux_2_28_aarch64/lib/libffpack.so  /host/sage-manylinux_2_28_aarch64/lib/libgivaro.so  /host/sage-manylinux_2_28_aarch64/lib/libmps.so  /host/sage-manylinux_2_28_aarch64/lib/libfrobby.a  /host/sage-manylinux_2_28_aarch64/lib/libnormaliz.so  /host/sage-manylinux_2_28_aarch64/lib/libnauty.a  /host/sage-manylinux_2_28_aarch64/lib/libeanticxx.so  /host/sage-manylinux_2_28_aarch64/lib/libeantic.so  /host/sage-manylinux_2_28_aarch64/lib/libfactory.so  /host/sage-manylinux_2_28_aarch64/lib/libflint.so  /host/sage-manylinux_2_28_aarch64/lib/libntl.so  /host/sage-manylinux_2_28_aarch64/lib/libmpfi.so  /host/sage-manylinux_2_28_aarch64/lib/libmpfr.so  /host/sage-manylinux_2_28_aarch64/lib/libgc.so  /host/sage-manylinux_2_28_aarch64/lib/libgmpxx.so  /host/sage-manylinux_2_28_aarch64/lib/libgmp.so  /host/sage-manylinux_2_28_aarch64/lib/libopenblas.so  -lm  -ldl  /usr/lib64/libxml2.so  /usr/lib64/libreadline.so  /usr/lib64/libhistory.so  /usr/lib64/libgdbm.so  Macaulay2/e/mathicgb/libmathicgb.a  Macaulay2/e/mathic/libmathic.a  Macaulay2/e/memtailor/libmemtailor.a  -lpthread  /host/sage-manylinux_2_28_aarch64/lib/libtbb.so.12.15  -lgomp  /lib64/libpthread.so && cd /host/sage-manylinux_2_28_aarch64/var/tmp/sage/build/macaulay2-1.25.06/src/M2/BUILD/build/Macaulay2/bin && /host/sage-manylinux_2_28_aarch64/bin/cmake -E echo --\ Linked\ libraries: && LD_LIBRARY_PATH=/host/sage-manylinux_2_28_aarch64/var/tmp/sage/build/macaulay2-1.25.06/src/M2/BUILD/build/usr-host/lib:/opt/rh/gcc-toolset-14/root/usr/lib64:/opt/rh/gcc-toolset-14/root/usr/lib:/opt/rh/gcc-toolset-14/root/usr/lib64/dyninst:/opt/rh/gcc-toolset-14/root/usr/lib/dyninst /usr/bin/ldd /host/sage-manylinux_2_28_aarch64/var/tmp/sage/build/macaulay2-1.25.06/src/M2/BUILD/build/usr-dist/aarch64-Linux--/bin/M2-binary && /host/sage-manylinux_2_28_aarch64/bin/cmake -E echo --\ INSTALL_RPATH:\ /host/sage-manylinux_2_28_aarch64/lib/Macaulay2/lib
  [macaulay2-1.25.06]   [spkg-install] /opt/rh/gcc-toolset-14/root/usr/libexec/gcc/aarch64-redhat-linux/14/ld: cannot find -lquadmath: No such file or directory

(This toolchain is what cibuildwheel uses to create binaries for manylinux 2.28.)

Ref: https://github.com/passagemath/passagemath/issues/991

mkoeppe avatar Jun 09 '25 16:06 mkoeppe