-
Notifications
You must be signed in to change notification settings - Fork 539
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
[TopOpt_in_PETSc] WIP: new builder #3648
Conversation
@vchuravy do you have any thoughts on this? I can also try not using PETSc's build system to build TopOpt, and just manually edit the compiler calls. That would be fragile (they recommend you don't do that), but I could specify the location of the right files rather than using That still doesn't solve the issue with the PETSc builder deleting the |
I haven't looked at the PETSc builder in detail, maybe @jkozdon has ideas? |
I think we may need to save I'm fine with the Yggdrasil/P/PETSc/build_tarballs.jl Lines 77 to 85 in 71094ab
in the PETSc build script. Not sure if something like: # add suffix to library name
if [[ "${target}" == *-mingw* ]]; then
# changing the extension from so to dll.
mv ${prefix}/lib/libpetsc.so.*.*.* "${libdir}/libpetsc_${1}_${2}_${3}.${dlext}"
elif [[ "${target}" == *-apple* ]]; then
mv ${prefix}/lib/libpetsc.*.*.*.${dlext} "${libdir}/libpetsc_${1}_${2}_${3}.${dlext}"
else
mv ${prefix}/lib/libpetsc.${dlext}.*.*.* "${libdir}/libpetsc_${1}_${2}_${3}.${dlext}"
fi
mkdir "${libdir}/include_${1}_${2}_${3}"
mv ${prefix}/include/*.h "${libdir}/include_${1}_${2}_${3}" would work? |
I'll make a PR to try that. I forget, is there a way to test more than one builder locally? Relatedly, what should I do about the libraries? Just manually build against |
bump |
Sorry to bother you all again with this, but is there any hope this PR can be done in the near future? |
#3801 needs to be finished up. In particular I need to figure out how to do what Elliot recommended there towards the bottom. I have a few more questions about that, I'll ping him on Slack. Once that's done this should just work like normal. Sorry about the long gap there! The PETSc build system is a little frustrating to work around. |
No worries, I appreciate your help :) |
With #3801 merged, is this PR not blocked anymore? |
I have to finish it up but no it's not blocked anymore. I'll try to finish it tonight |
I expect almost all of those are red from using patchelf right now. @giordano this will now compile but running
(it gets cut off I suppose) There's two questions here:
Is this even a valid test of whether |
Ok, the problem is that
and so |
I can confirm this is fixed by JuliaPackaging/BinaryBuilder.jl#1186. |
Thanks a bunch @giordano, so fast I didn't have a chance to fix! How long will it take to merge the fix to BB? |
All green now 🙂 |
This shouldn't be merged in its current state. There is a pretty big problem:
I currently have to vendor PETSc. The reason is that the current PETSc builder clobbers lots of files when it builds for each set of scalars (real/complex, single/double, and Int32/Int64). In particular it clobbers all of
.h
files in$includedir
, and all of the$libdir/petsc
folder which contains configuration files.The version required by this library
double_real_Int32
is built first, so only the.so
file remains at the end. In order to have a dependency on PETSc these files need to be kept in some form. I'm just not sure how to do that correctly in the PETSc builder.The second issue is that this repo has no license.Found it hiding in plain sight.