Coder Social home page Coder Social logo

Comments (6)

EbiArnie avatar EbiArnie commented on May 27, 2024 1

If I'm not mistaken, what's happening for you is:

  1. You try to build Data::Dumper on presumably a RedHat (or derived) system.
  2. This system has the annobin plugin configured for gcc.
  3. The system Perl is built with that.
  4. You use a Spack-built compiler, but Perl is an external.
  5. Perl remembers how it was built and uses the system compiler to build modules. This pulls in the compiler config.
  6. The actual compiler is overridden by Spack to be gcc 11.4.0. But this compiler was built without the additional annobin plugin.

Recommended solution:
Build Perl within Spack, don't use an external.
Alternative:
Use Perl as external, but also use the compiler that the system Perl was built with as an external.

Both should work.

Also, for reference, see here:
openhpc/ohpc#1364

from spack.

BenWibking avatar BenWibking commented on May 27, 2024

Ok, I'm running into a Perl build problem now:

==> Installing perl-5.38.0-6dnrlua6o45urlxv25cwqvblzjvcwxmo [10/11]
==> No binary for perl-5.38.0-6dnrlua6o45urlxv25cwqvblzjvcwxmo found: installing from source
==> Error: IndexError: list index out of range

/projects/cvz/bwibking/spack/var/spack/repos/builtin/packages/perl/package.py:481, in setup_build_environment:
        478        env.set("BZIP2_LIB", spec["bzip2"].libs.directories[0])
        479        env.set("BUILD_ZLIB", 0)
        480        env.set("ZLIB_INCLUDE", spec["zlib-api"].prefix.include)
  >>    481        env.set("ZLIB_LIB", spec["zlib-api"].libs.directories[0])

I'll open another issue for this.

from spack.

EbiArnie avatar EbiArnie commented on May 27, 2024

Perl builds fine for me. I'm on develop though.

With an external package, I think you have to spack uninstall from the environment, then spack concretize -f .
I think this might be the issue here.

from spack.

BenWibking avatar BenWibking commented on May 27, 2024

I had to spack uninstall zlib to get it working. I wish Spack gave a more interpretable error message in this case.

from spack.

EbiArnie avatar EbiArnie commented on May 27, 2024

I agree. In general, this won't be easy, though. We're in package.py, so this is just some python code. Spack does not have very close control about how this is run - or so I think. Meaning Spack can catch this and get at the error and line number, but the interpretation of what that line wanted to do and why it failed is pretty hard. In this concrete case though - maybe we should use accessor methods instead of directly accessing the class members here, then it would be easier to check for this and to provide sensible error messages.

from spack.

EbiArnie avatar EbiArnie commented on May 27, 2024

Since this is not an error in perl-data-dumper, I'd close this now. Feel free to open another issue for either the less than helpful error or the way we go from externals to no-longer-externals and the associated help (or lack thereof) Spack gives here.

from spack.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.