Skip to content

Absoft MTT 32 bit build failure on master #4146

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

Closed
jsquyres opened this issue Aug 29, 2017 · 6 comments · Fixed by #4156
Closed

Absoft MTT 32 bit build failure on master #4146

jsquyres opened this issue Aug 29, 2017 · 6 comments · Fixed by #4156
Labels

Comments

@jsquyres
Copy link
Member

jsquyres commented Aug 29, 2017

Absoft's MTT is showing a 32 bit build failure on master -- linking opal_wrapper seems to be looking for a non-existent opal_cmpset_64 symbol.

See https://mtt.open-mpi.org/index.php?do_redir=2478.

@cagoelz sent the attached full logs, but they apparently don't show much beyond what we see in MTT generated by:

$ ../openmpi-master-201708290239-a84af67/configure FC=af90 FCFLAGS=-Z790 "CFLAGS=-g -pipe" --enable-picky --enable-debug --enable-mpirun-prefix-by-default 2>&1 | tee config_output.txt
$ make 2>&1 | tee make_output.txt

make_output.txt
config_output.txt

@jsquyres jsquyres added the bug label Aug 29, 2017
@jsquyres
Copy link
Member Author

From @cagoelz:

$ find . -name "*.o" -exec grep opal_atomic_cmpset_64 {} \;
Binary file ./class/.libs/opal_list.o matches
Binary file ./mca/mpool/hugepage/.libs/mpool_hugepage_module.o matches

$ nm ./class/.libs/opal_list.o | grep opal_atomic_cmpset_64
        U opal_atomic_cmpset_64

$ nm ./mca/mpool/hugepage/.libs/mpool_hugepage_module.o | grep opal_atomic_cmpset_64
        U opal_atomic_cmpset_64

@jsquyres
Copy link
Member Author

@cagoelz Can we get the config.log file as well? @hjelmn would like to see it.

@cagoelz
Copy link

cagoelz commented Aug 29, 2017

Here it is.
config.log.zip

@hjelmn
Copy link
Member

hjelmn commented Aug 29, 2017

Hmm, seems this is a side-effect of deleting the old hand-coded ASM. This commit is why it is failing: b5ea5e09 . @bwbarrett Do you remember any of the details? I wonder if gcc still has this limitation.

@bwbarrett
Copy link
Member

Wow; talk about bad flashbacks. I love this part:

For the beta, just use the non-inline version

Apparently it took 12 years for the hack to catch up with us.

Shockingly, I do remember this one. cmpxchg8b requires ebx to be used, but some versions of gcc were throwing an error trying to protect ebx, because shared libraries totally break if you change ebx (which we handle by saving/restoring the register). It was a hard compile-time error. We should be able to try a couple modern versions of gcc and if they compile, we're good.

hjelmn added a commit to hjelmn/ompi that referenced this issue Aug 31, 2017
…ible to"

This reverts commit b5ea5e0

This commit reverts a change that is hopefully not necessary. If this
is the case this will fix open-mpi#4146.

Signed-off-by: Nathan Hjelm <[email protected]>
hjelmn added a commit that referenced this issue Sep 1, 2017
…ible to"

This reverts commit b5ea5e0

This commit reverts a change that is hopefully not necessary. If this
is the case this will fix #4146.

Signed-off-by: Nathan Hjelm <[email protected]>
@hjelmn
Copy link
Member

hjelmn commented Sep 1, 2017

Should be fixed now. We will re-open if MTT continues to show failures.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants