Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fflas-ffpack master: Build fails on macOS #391

Open
mkoeppe opened this issue Jan 2, 2024 · 2 comments
Open

fflas-ffpack master: Build fails on macOS #391

mkoeppe opened this issue Jan 2, 2024 · 2 comments

Comments

@mkoeppe
Copy link
Contributor

mkoeppe commented Jan 2, 2024

On homebrew-macos-usrlocal-minimal, tested using

  /bin/bash ../../../libtool  --tag=CXX   --mode=link g++ -std=gnu++11 -std=gnu++11 -O2 -march=native -Wall -DNDEBUG -UDEBUG    -g -O2 -version-info 1:0:0 -no-undefined -L/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib -Wl,-rpath,/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib -L/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib -Wl,-rpath,/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib  -o libfflas.la -rpath /Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib fflas_L1_inst.lo fflas_L2_inst.lo fflas_L3_inst.lo -L/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib -lgivaro -lgmpxx -lgmp -L/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib -lopenblas  -L/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib -lopenblas
  libtool: link: g++ -std=gnu++11 -std=gnu++11 -dynamiclib  -o .libs/libfflas.1.dylib  .libs/fflas_L1_inst.o .libs/fflas_L2_inst.o .libs/fflas_L3_inst.o   -L/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib -lgivaro -lgmpxx -lgmp -lopenblas  -O2 -march=native -g -O2 -Wl,-rpath -Wl,/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib -Wl,-rpath -Wl,/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib   -install_name  /Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib/libfflas.1.dylib -compatibility_version 2 -current_version 2.0 -Wl,-single_module
  libtool: link: (cd ".libs" && rm -f "libfflas.dylib" && ln -s "libfflas.1.dylib" "libfflas.dylib")
  libtool: link: ( cd ".libs" && rm -f "libfflas.la" && ln -s "../libfflas.la" "libfflas.la" )
  /bin/bash ../../../libtool  --tag=CXX   --mode=link g++ -std=gnu++11 -std=gnu++11 -O2 -march=native -Wall -DNDEBUG -UDEBUG    -g -O2 -version-info 1:0:0 -no-undefined -L/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib -Wl,-rpath,/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib -L/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib -Wl,-rpath,/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib  -o libfflas_c.la -rpath /Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib fflas_lvl1.lo fflas_lvl2.lo fflas_lvl3.lo fflas_sparse.lo libfflas.la -L/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib -lopenblas
  libtool: link: g++ -std=gnu++11 -std=gnu++11 -dynamiclib  -o .libs/libfflas_c.1.dylib  .libs/fflas_lvl1.o .libs/fflas_lvl2.o .libs/fflas_lvl3.o .libs/fflas_sparse.o   -L/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib ./.libs/libfflas.dylib -lopenblas  -O2 -march=native -g -O2 -Wl,-rpath -Wl,/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib -Wl,-rpath -Wl,/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib   -install_name  /Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib/libfflas_c.1.dylib -compatibility_version 2 -current_version 2.0 -Wl,-single_module
  Undefined symbols for architecture x86_64:
    "Givaro::Integer::operator%(unsigned long long) const", referenced from:
        Givaro::Modular<double, double, void>::init(double&, Givaro::Integer const&) const in fflas_lvl1.o
        Givaro::Modular<double, double, void>::init(double&, Givaro::Integer const&) const in fflas_lvl2.o
        Givaro::Modular<double, double, void>::init(double&, Givaro::Integer const&) const in fflas_lvl3.o
  ld: symbol(s) not found for architecture x86_64
  clang: error: linker command failed with exit code 1 (use -v to see invocation)
  make[7]: *** [libfflas_c.la] Error 1
  2 warnings generated.
  2 warnings generated.
  /bin/bash ../../../libtool  --tag=CXX   --mode=link g++ -std=gnu++11 -std=gnu++11 -O2 -march=native -Wall -DNDEBUG -UDEBUG    -g -O2 -version-info 1:0:0 -no-undefined -L/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib -Wl,-rpath,/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib -L/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib -Wl,-rpath,/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib  -o libffpack.la -rpath /Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib ffpack_inst.lo libfflas.la -L/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib -lopenblas
  libtool: link: g++ -std=gnu++11 -std=gnu++11 -dynamiclib  -o .libs/libffpack.1.dylib  .libs/ffpack_inst.o   -L/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib ./.libs/libfflas.dylib -lopenblas  -O2 -march=native -g -O2 -Wl,-rpath -Wl,/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib -Wl,-rpath -Wl,/Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib   -install_name  /Users/runner/work/fflas-ffpack/fflas-ffpack/.tox/local-homebrew-macos-usrlocal-minimal/local/lib/libffpack.1.dylib -compatibility_version 2 -current_version 2.0 -Wl,-single_module
  Undefined symbols for architecture x86_64:
    "Givaro::Degree::deginfty", referenced from:
        Givaro::Poly1Dom<Givaro::ModularBalanced<double>, Givaro::Dense>::assign(std::__1::vector<double, std::__1::allocator<double> >&, std::__1::vector<double, std::__1::allocator<double> > const&) const in ffpack_inst.o
        Givaro::Poly1Dom<Givaro::ModularBalanced<float>, Givaro::Dense>::assign(std::__1::vector<float, std::__1::allocator<float> >&, std::__1::vector<float, std::__1::allocator<float> > const&) const in ffpack_inst.o
        Givaro::Poly1Dom<Givaro::ModularBalanced<long long>, Givaro::Dense>::assign(std::__1::vector<long long, std::__1::allocator<long long> >&, std::__1::vector<long long, std::__1::allocator<long long> > const&) const in ffpack_inst.o
        Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense>::assign(std::__1::vector<double, std::__1::allocator<double> >&, std::__1::vector<double, std::__1::allocator<double> > const&) const in ffpack_inst.o
        Givaro::Poly1Dom<Givaro::Modular<float, float, void>, Givaro::Dense>::assign(std::__1::vector<float, std::__1::allocator<float> >&, std::__1::vector<float, std::__1::allocator<float> > const&) const in ffpack_inst.o
        Givaro::Poly1Dom<Givaro::Modular<long long, long long, void>, Givaro::Dense>::assign(std::__1::vector<long long, std::__1::allocator<long long> >&, std::__1::vector<long long, std::__1::allocator<long long> > const&) const in ffpack_inst.o
    "Givaro::Integer::Integer(double)", referenced from:
        void FFPACK::RandomNullSpaceVector<Givaro::ModularBalanced<float> >(Givaro::ModularBalanced<float> const&, FFLAS::FFLAS_SIDE, unsigned long, unsigned long, Givaro::ModularBalanced<float>::Element_ptr, unsigned long, Givaro::ModularBalanced<float>::Element_ptr, unsigned long) in ffpack_inst.o
        Givaro::Poly1Dom<Givaro::ModularBalanced<long long>, Givaro::Dense>::Element& FFPACK::CharPoly<Givaro::Poly1Dom<Givaro::ModularBalanced<long long>, Givaro::Dense> >(Givaro::Poly1Dom<Givaro::ModularBalanced<long long>, Givaro::Dense> const&, Givaro::Poly1Dom<Givaro::ModularBalanced<long long>, Givaro::Dense>::Element&, unsigned long, Givaro::Poly1Dom<Givaro::ModularBalanced<long long>, Givaro::Dense>::Domain_t::Element_ptr, unsigned long, FFPACK::FFPACK_CHARPOLY_TAG, unsigned long) in ffpack_inst.o
        ...
    "Givaro::Integer::operator double() const", referenced from:
        double FFLAS::Protected::computeFactorClassic<Givaro::ModularBalanced<double> >(Givaro::ModularBalanced<double> const&) in ffpack_inst.o
        double FFLAS::Protected::computeFactorClassic<Givaro::ModularBalanced<float> >(Givaro::ModularBalanced<float> const&) in ffpack_inst.o
        double FFLAS::Protected::computeFactorClassic<Givaro::Modular<double, double, void> >(Givaro::Modular<double, double, void> const&) in ffpack_inst.o
        double FFLAS::Protected::computeFactorClassic<Givaro::Modular<float, float, void> >(Givaro::Modular<float, float, void> const&) in ffpack_inst.o
    "Givaro::Integer::operator==(int) const", referenced from:
        unsigned long FFLAS::Protected::DotProdBoundClassic<Givaro::ModularBalanced<double> >(Givaro::ModularBalanced<double> const&, Givaro::ModularBalanced<double>::Element const&) in ffpack_inst.o
        unsigned long FFLAS::Protected::DotProdBoundClassic<Givaro::ModularBalanced<float> >(Givaro::ModularBalanced<float> const&, Givaro::ModularBalanced<float>::Element const&) in ffpack_inst.o
        unsigned long FFLAS::Protected::DotProdBoundClassic<Givaro::Modular<double, double, void> >(Givaro::Modular<double, double, void> const&, Givaro::Modular<double, double, void>::Element const&) in ffpack_inst.o
        unsigned long FFLAS::Protected::DotProdBoundClassic<Givaro::Modular<float, float, void> >(Givaro::Modular<float, float, void> const&, Givaro::Modular<float, float, void>::Element const&) in ffpack_inst.o
    "Givaro::Integer::operator<(unsigned long long) const", referenced from:
        std::__1::list<Givaro::Poly1Dom<Givaro::ModularBalanced<double>, Givaro::Dense>::Element, std::__1::allocator<Givaro::Poly1Dom<Givaro::ModularBalanced<double>, Givaro::Dense>::Element> >& FFPACK::CharPoly<Givaro::Poly1Dom<Givaro::ModularBalanced<double>, Givaro::Dense> >(Givaro::Poly1Dom<Givaro::ModularBalanced<double>, Givaro::Dense> const&, std::__1::list<Givaro::Poly1Dom<Givaro::ModularBalanced<double>, Givaro::Dense>::Element, std::__1::allocator<Givaro::Poly1Dom<Givaro::ModularBalanced<double>, Givaro::Dense>::Element> >&, unsigned long, Givaro::Poly1Dom<Givaro::ModularBalanced<double>, Givaro::Dense>::Domain_t::Element_ptr, unsigned long, Givaro::Poly1Dom<Givaro::ModularBalanced<double>, Givaro::Dense>::Domain_t::RandIter&, FFPACK::FFPACK_CHARPOLY_TAG, unsigned long) in ffpack_inst.o
        std::__1::list<Givaro::Poly1Dom<Givaro::ModularBalanced<float>, Givaro::Dense>::Element, std::__1::allocator<Givaro::Poly1Dom<Givaro::ModularBalanced<float>, Givaro::Dense>::Element> >& FFPACK::CharPoly<Givaro::Poly1Dom<Givaro::ModularBalanced<float>, Givaro::Dense> >(Givaro::Poly1Dom<Givaro::ModularBalanced<float>, Givaro::Dense> const&, std::__1::list<Givaro::Poly1Dom<Givaro::ModularBalanced<float>, Givaro::Dense>::Element, std::__1::allocator<Givaro::Poly1Dom<Givaro::ModularBalanced<float>, Givaro::Dense>::Element> >&, unsigned long, Givaro::Poly1Dom<Givaro::ModularBalanced<float>, Givaro::Dense>::Domain_t::Element_ptr, unsigned long, Givaro::Poly1Dom<Givaro::ModularBalanced<float>, Givaro::Dense>::Domain_t::RandIter&, FFPACK::FFPACK_CHARPOLY_TAG, unsigned long) in ffpack_inst.o
        std::__1::list<Givaro::Poly1Dom<Givaro::ModularBalanced<long long>, Givaro::Dense>::Element, std::__1::allocator<Givaro::Poly1Dom<Givaro::ModularBalanced<long long>, Givaro::Dense>::Element> >& FFPACK::CharPoly<Givaro::Poly1Dom<Givaro::ModularBalanced<long long>, Givaro::Dense> >(Givaro::Poly1Dom<Givaro::ModularBalanced<long long>, Givaro::Dense> const&, std::__1::list<Givaro::Poly1Dom<Givaro::ModularBalanced<long long>, Givaro::Dense>::Element, std::__1::allocator<Givaro::Poly1Dom<Givaro::ModularBalanced<long long>, Givaro::Dense>::Element> >&, unsigned long, Givaro::Poly1Dom<Givaro::ModularBalanced<long long>, Givaro::Dense>::Domain_t::Element_ptr, unsigned long, Givaro::Poly1Dom<Givaro::ModularBalanced<long long>, Givaro::Dense>::Domain_t::RandIter&, FFPACK::FFPACK_CHARPOLY_TAG, unsigned long) in ffpack_inst.o
        std::__1::list<Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense>::Element, std::__1::allocator<Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense>::Element> >& FFPACK::CharPoly<Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense> >(Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense> const&, std::__1::list<Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense>::Element, std::__1::allocator<Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense>::Element> >&, unsigned long, Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense>::Domain_t::Element_ptr, unsigned long, Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense>::Domain_t::RandIter&, FFPACK::FFPACK_CHARPOLY_TAG, unsigned long) in ffpack_inst.o
        std::__1::list<Givaro::Poly1Dom<Givaro::Modular<float, float, void>, Givaro::Dense>::Element, std::__1::allocator<Givaro::Poly1Dom<Givaro::Modular<float, float, void>, Givaro::Dense>::Element> >& FFPACK::CharPoly<Givaro::Poly1Dom<Givaro::Modular<float, float, void>, Givaro::Dense> >(Givaro::Poly1Dom<Givaro::Modular<float, float, void>, Givaro::Dense> const&, std::__1::list<Givaro::Poly1Dom<Givaro::Modular<float, float, void>, Givaro::Dense>::Element, std::__1::allocator<Givaro::Poly1Dom<Givaro::Modular<float, float, void>, Givaro::Dense>::Element> >&, unsigned long, Givaro::Poly1Dom<Givaro::Modular<float, float, void>, Givaro::Dense>::Domain_t::Element_ptr, unsigned long, Givaro::Poly1Dom<Givaro::Modular<float, float, void>, Givaro::Dense>::Domain_t::RandIter&, FFPACK::FFPACK_CHARPOLY_TAG, unsigned long) in ffpack_inst.o
        std::__1::list<Givaro::Poly1Dom<Givaro::Modular<long long, long long, void>, Givaro::Dense>::Element, std::__1::allocator<Givaro::Poly1Dom<Givaro::Modular<long long, long long, void>, Givaro::Dense>::Element> >& FFPACK::CharPoly<Givaro::Poly1Dom<Givaro::Modular<long long, long long, void>, Givaro::Dense> >(Givaro::Poly1Dom<Givaro::Modular<long long, long long, void>, Givaro::Dense> const&, std::__1::list<Givaro::Poly1Dom<Givaro::Modular<long long, long long, void>, Givaro::Dense>::Element, std::__1::allocator<Givaro::Poly1Dom<Givaro::Modular<long long, long long, void>, Givaro::Dense>::Element> >&, unsigned long, Givaro::Poly1Dom<Givaro::Modular<long long, long long, void>, Givaro::Dense>::Domain_t::Element_ptr, unsigned long, Givaro::Poly1Dom<Givaro::Modular<long long, long long, void>, Givaro::Dense>::Domain_t::RandIter&, FFPACK::FFPACK_CHARPOLY_TAG, unsigned long) in ffpack_inst.o
    "Givaro::Integer::operator-(long long) const", referenced from:
        double FFLAS::Protected::computeFactorClassic<Givaro::ModularBalanced<double> >(Givaro::ModularBalanced<double> const&) in ffpack_inst.o
        double FFLAS::Protected::computeFactorClassic<Givaro::ModularBalanced<float> >(Givaro::ModularBalanced<float> const&) in ffpack_inst.o
        double FFLAS::Protected::computeFactorClassic<Givaro::Modular<double, double, void> >(Givaro::Modular<double, double, void> const&) in ffpack_inst.o
        double FFLAS::Protected::computeFactorClassic<Givaro::Modular<float, float, void> >(Givaro::Modular<float, float, void> const&) in ffpack_inst.o
    "Givaro::Integer::operator>>(int) const", referenced from:
        double FFLAS::Protected::computeFactorClassic<Givaro::ModularBalanced<double> >(Givaro::ModularBalanced<double> const&) in ffpack_inst.o
        double FFLAS::Protected::computeFactorClassic<Givaro::ModularBalanced<float> >(Givaro::ModularBalanced<float> const&) in ffpack_inst.o
  ld: symbol(s) not found for architecture x86_64
  clang: error: linker command failed with exit code 1 (use -v to see invocation)

https://github.com/linbox-team/fflas-ffpack/actions/runs/7382353719/job/20082049232?pr=386#step:12:2424

@kwankyu
Copy link

kwankyu commented May 14, 2024

Can we hope this to be fixed soon?

@ClementPernet

vbraun pushed a commit to vbraun/sage that referenced this issue May 18, 2024
Just hack the missing -lgivaro into the linker command, see also
linbox-team/fflas-ffpack#391 for the real bug

Closes sagemath#38002

URL: sagemath#38020
Reported by: Volker Braun
Reviewer(s):
@kwankyu
Copy link

kwankyu commented May 18, 2024

fflas-ffpack v2.5.0, with system givaro and openblas, installs fine on my mac following the standard install guide here.

I suspect that the reported build failure is caused by peculiar sage build configurations and environment.

Hence I think it is unlikely that the reported issue (at least as presented here) may be fixed by developers here...

vbraun pushed a commit to vbraun/sage that referenced this issue May 18, 2024
Just hack the missing -lgivaro into the linker command, see also
linbox-team/fflas-ffpack#391 for the real bug

Closes sagemath#38002

URL: sagemath#38020
Reported by: Volker Braun
Reviewer(s):
vbraun pushed a commit to vbraun/sage that referenced this issue May 24, 2024
    
Just hack the missing -lgivaro into the linker command, see also
linbox-team/fflas-ffpack#391 for the real bug

Closes sagemath#38002
    
URL: sagemath#38020
Reported by: Volker Braun
Reviewer(s):
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants