-
Notifications
You must be signed in to change notification settings - Fork 14
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
embedding the uwuw preprocessing in the plugin #62
base: develop
Are you sure you want to change the base?
Conversation
Note that this PR depends on svalinn/DAGMC#703 I was able to build a working version of the plugin after adding these lines to the "Create the Tarball" section of the README:
and
|
Ah, never mind. I tried running
and I got the following:
which is the same issue you're seeing |
You know, I bet this is caused by the @gonuke do you know why we need this flag? It's been there since the beginning and all I know about it is that the plugin won't work without it. |
I tried without, did not change... |
If you remove the
|
missing symbol is:
I am wondering is the difference are important there : |
I was right! I re-built moab and DAGMC with
|
Building moab and DAGMC with
|
great!!! thx for finding the solution ! |
Not sure if this actually the best solution though; depends on Paul's answer to my question |
See here 55a2f7c...ljacobson64:preproc for the changes I made |
Sorry just catching up here. After some digging on this, I think the ABI flag setting was related to specific versions of gcc being incompatible. Specifically, binaries compiled using gcc >=5.1 would no longer work with binaries compiled using gcc <4.8.2 if this flag was not set. It had something to do with a correction in how C++11 extensions were handled. Given that these are now pretty old compiler versions, I think we can remove this setting. All of the versions of Ubuntu we're building the plugin for at this point should have binaries compiled with something newer than 5.1. As to why it suddenly mattered w/ UWUW, this might be the first instance of us using a piece of the DAGMC API with a |
It does matter though... if you remove that flag, then Trelis segfaults as soon as it tries to load the plugin |
I'll look more closely later tonight, but I think it's sort of an all-or-nothing thing (all projects need to either use or not use the flag). I'll try to elaborate later. I could be totally wrong though. |
yes I think that's right. I am not sure we can avoid the flag (on the Trelis side) tho... |
@bam241 good point. If the Trelis libraries are compiled with a version of GCC < 5.1 then we might have to include these flags throughout our stack when building the plugin. Here's some info from GCC on what's going on: https://gcc.gnu.org/onlinedocs/gcc-5.2.0/libstdc++/manual/manual/using_dual_abi.html |
I think Trelis 16.5 (which is what it looks like was being used to test the plugin bulid for this PR) was compiled with GCC <5.1. Here's the output of String dump of section '.comment':
[ 0] GCC: (GNU) 4.4.7 20120313 (Red Hat 4.4.7-23)
[ 2d] GCC: (GNU) 4.9.2 20150212 (Red Hat 4.9.2-6) For Trelis 17.1, however, it appears a newer compiler may have been used for some/all of the compilation? String dump of section '.comment':
[ 0] GCC: (GNU) 4.4.7 20120313 (Red Hat 4.4.7-23)
[ 2d] GCC: (GNU) 6.3.1 20170216 (Red Hat 6.3.1-3) So I'd be curious if this fix for setting the ABI flag is necessary for 17.1 as opposed to 16.5. OR if using it actually breaks the plugin build against 17.1 because it was created with a different compiler. OR perhaps we'll verify that we do in fact need to include this setting throughout our stack when building the plugin regardless of what Trelis version we're working with -- in which case none of this matters and we move forward with the changes @ljacobson64 has provided 😄 |
Thanks for all this info; very enlightening. I have been using Trelis 16.5 for my testing, yes. I have not tried 17.1 yet. If Trelis 17 uses a newer compiler and thus requires our entire stack to not contain the ABI flag, while Trelis 16 does require the ABI flag, then we would need to start providing 2 different versions of the plugin. |
The verdict is in: the ABI flag is needed for both 16.5 and 17.1. |
Alrighty! Let's update the install instructions as per your commit above. Good to know we can have a consistent approach to this for Trelis 16 and 17. Thanks for verifying this, @ljacobson64! |
@ljacobson64 how did you pass the ABI flag in MOAB/DAGMC installs ? (I can include this fix in the PR as it is related to compiling and running this upgrade of the Plugin...) |
Looking at the commit he referenced above, it seems he set the |
thx I missed the link part. I'll include those commit in the PR :) |
…X11_ABI=0 order for consistency
…uild them and in the plugin bind them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unfortunately, I can't try this out, but everything looks good to me!
converting to Draft, I still want to change the command line side. We were thinking about: setting up a variable for the pyne MaterialLibrary and the datapath and just a boolean in the export to dagmc command, to simplify usage. |
Sounds good. Let us know when it's ready for review! |
this should allow to preprocess material and tallies directly from Trelis.
this is compiling but has not being tested.
Feel free to comment even if this is not finished yet!