-
Notifications
You must be signed in to change notification settings - Fork 559
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
[PETSc] Upgrades petsc to 3.15.2 and enables multiple precision, scalar, and int types #3249
Conversation
|
94e5884
to
5e10602
Compare
Any tips for working around this? |
If you haven't done that yet, I'd suggest to locally enter the build environment and read the log files, to understand what's going on:
PETSc has a super custom build system, so I can't easily try and guess something without reading the logs. But the fact that only these platforms fail is very remarkable, it's the exact opposite of what I'd expect in general: platforms that can do native compilation should be easier to deal with in our cross-compilation framework. |
Will do. I misread you previous message, and thought that you were suggesting that failure was likely. |
Hmm... doesn't even work without my changes so the problem is some change outside of PETSc. Going to try to enlist someone who is better at build systems than me. In case anyone is interested here is what I am doing to just try One of the weird things to me is that there are errors like |
Folks on the petsc mailing list think that there is a problem with the compiler install given the reference to Could there be some issue with If I turn off the c++ interface with |
I have reverted all my commits and just rolled back the So it seems that there is something that broken with the c++ libraries with #3198(?), though #3198 seems so minimal I have no idea what could be wrong. Not sure how to proceed.... Thoughts? |
Uhm, the fact that libstdc++ from GCC 11 may be relevant is interesting and concerning, since that's what will be used in Julia v1.7. Rolling back |
Thanks. |
For the record, I believe I tracked down the issue to the simple reproducer I reported in JuliaPackaging/BinaryBuilderBase.jl#163 and I already have a fix for that, but I need to write the tests and that may take a bit as it's surprisingly complicated to do in a nice way (by "nice" I mean in a way that doesn't force me to download the |
@giordano Thanks for the update! No rush, I appreciate you taking a look. |
Ok, it looks like JuliaPackaging/BinaryBuilderBase.jl#163 did solve the issues with |
Thanks! |
The same error with undefined reference to |
Unfortunately superlu is already turned off. Going to work on trying to debug locally. |
If this is ready, you should mark it so 🙂 However auditor reports a warning about the fact there are two files with the same path, module case: they generate two identical pkgconfig files with names @jedbrown I see you introduced the |
The PETSc installer writes |
Yeah, the fact is that here we create the tarballs on a case-sensitive file-system but will install the tarballs on case-insensitive ones 🙂 But yeah, should we have troubles with other packages not finding PETSc we can fix that |
The whole point of the PR was to enable multiple scalar, real, and int type versions of PETSc. I'm building these right now to make sure that they work fine before releasing the PR |
Cool, @giordano If you think PETSc upstream should do something differently, let us know. I figure we can remove |
OK. I think that I am happy with this now.
|
Would it be worth also adding debug versions of the library? That blows up the build even more though... cc: @psanan, @boriskaus, @simonbyrne ? |
As far as I am concerned I would be extremely happy to have builds with superlu_dist and mumps included; we use that as coarse grid solvers in basically everything we do.
Debug would be lower in this list.
|
Let me see if I can enable these... |
8d15f81
to
62165b2
Compare
It's looking like mumps, superlu, and superlu_dist will take a bit of work to sort out. I know that superlu didn't work before either in the original PETSc PR #845 |
The only thing I'd like to ask is to delete |
🎉 Thanks! |
@jkozdon re whether debug builds should be included, this depends on whether users will need the extra checks that debug mode provides. In normal PETSc usage, this adds more checks that |
…ar, and int types (JuliaPackaging#3249) * [PETSc] Update PETSc version * [PETSc] Add `-fno-stack-protector` flag * [PETSc] Fix MPI library path * [PETSc] Require GCC 9 for libgfortran5 The linker that comes with GCC 8 emits a warning on `{i686,x86_64}-linux-musl` and that makes configuration script fail. * [PETSc] Add build with multiple types - Real and Complex - Int32 and Int64 - Float64 and Float32 * [PETSc] Delete duplicated PETSc.pc file Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com>
complex
andreal
Float64
andFloat32
Int32
andInt64
The libraries named:
libpetsc_Float64_Real_Int64
libpetsc_Float32_Real_Int64
libpetsc_Float64_Complex_Int64
libpetsc_Float32_Complex_Int64
libpetsc_Float64_Real_Int32
libpetsc_Float32_Real_Int32
libpetsc_Float64_Complex_Int32
libpetsc_Float32_Complex_Int32
Additionally, there is a library
libpetsc
which is the same aslibpetsc_double_real_Int32
(the current default version ofPETSc_jll
).