-
Notifications
You must be signed in to change notification settings - Fork 843
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
Cannot Build OpenMPI Out of Source Tree with ACFL (armclang) #11737
Comments
I don't know if we've ever tried building with Can you invoke Can you also send the stdout/stderr from invoking |
Sure, here are the 2 logs (from a build on the Q8030 node with acfl 23.04.1) |
Can you send the contents of the It should have 2 If it does exist, can you artificially make the path to that file shorter (e.g., even if it's through a new sym link that you create)? I wonder if the preprocessor is barfing if the length of that filename is too long...? Seems like a long shot, but I've seen Fortran compilers do weird things with max line and/or filename lengths. |
That looks like a compiler bug (!)
in your case, a simple workaround (I did not try, but you get the idea) is to replace
An other and uglier workaround would be to pass I will have a look at LLVM's |
The content of that file is below. The files exist: ! -*- fortran -*-
! $HEADER$
!
! *** THIS FILE IS AUTOMATICALLY GENERATED!
! *** Any manual edits will be lost!
!
#include "ompi/mpi/fortran/configure-fortran-output.h"
module mpi_ext
! Even though this is not a useful parameter (cannot be used as a
! preprocessor catch) define it to keep the linker from complaining
! during the build.
integer OMPI_HAVE_MPI_EXT
parameter (OMPI_HAVE_MPI_EXT=1)
!
!
! Enabled Extension: affinity
! No "use mpi" bindings available
!
!
! Enabled Extension: cuda
! No "use mpi" bindings available
!
!
! Enabled Extension: pcollreq
!
#include "/home_nfs/bmorvana/test/openmpi_acfl_reproduce/acfl-23.04.1/openmpi-4.1.4/openmpi-4.1.4/ompi/mpiext/pcollreq/mpif-h/mpiext_pcollreq_mpifh.h"
#include "/home_nfs/bmorvana/test/openmpi_acfl_reproduce/acfl-23.04.1/openmpi-4.1.4/openmpi-4.1.4/ompi/mpiext/pcollreq/use-mpi/mpiext_pcollreq_usempi.h"
!
end module mpi_ext
|
I confirm the workaround using |
@ggouaillardet Are you saying you tested yourself, and armflang is failing when you: #include "/foo/bar.h" but armflang succeeds with: #include "../../foo/bar.h" ? If so, yes, that's sure feels like a compiler/preprocessor bug. One more thing to test, though, would be to check if the filename length has anything to do with this. E.g.: ! Does this fail?
#include "/some/really/long/path/to/a/really/deep/subdirectory/in/the/wastelands/of/a/gigantic/filesystem/on/your/disk/foo.h"
! Does this succeed?
#include "/foo/bar.h" @antoine-morvan A simple workaround for you might be to use a relative path to invoke |
@jsquyres yes, I did reproduce the problem exactly as you described. Path length is not an issue here. FWIW, under |
Thanks @ggouaillardet. I'm therefore going to close this issue, since it appears to be an armflang bug. |
Background information
What version of Open MPI are you using? (e.g., v3.0.5, v4.0.2, git branch name and hash, etc.)
Tried with 4.1.4 and 4.1.5
Describe how Open MPI was installed (e.g., from a source/distribution tarball, from a git clone, from an operating system distribution package, etc.)
build from source (see script below)
If you are building/installing from a git clone, please copy-n-paste the output from
git submodule status
.N/A
Please describe the system on which you are running
Details of the problem
Hello,
I am building openmpi on some ARM systems, and spent some time tracking why it did not build with ACFL (Arm Compiler for Linux = armclang). It turns out that out of source tree builds are failing with this particular compiler family.
I tried on both x86_64 and aarch64 systems (see above for processor details), with the following compiler suites:
And I tried in and out of source tree build on all these configurations. Only ACFL out of source tree fails. FAQ says it should work without any particular mention about ACFL : https://www.open-mpi.org/faq/?category=building#vpath-parallel-build
The error message looks like this:
Below is a script to reproduce. Please edit the big case 'Load Compiler' with your own compiler settings, and change
BUILD_TYPE
orOPENMPI_VERSION
to test different situations.Best.
The text was updated successfully, but these errors were encountered: