-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Build problem on Red Hat Enterprise 6 #1269
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
Comments
Can you build an earlier version in the same environment ? Without NO_AVX2 you would get assembler errors, this here looks like maybe you have mismatched versions of gcc and gfortran installed. |
Can you share spec and patches, they seem for different openblas version. |
It actually looks like the build started on EL6 failing right after I added the patch that adds necessary flags to make the tests compile correctly on another distribution, where the tests of the OpenMP flavor library weren't linking properly with the OpenMP runtime libraries. The up-to-date spec and patches are all available at I'll see if it compiles when I don't apply patch3. |
... and the packages in the buildroot can be seen at so gcc (and gfortran) is 4.4.7-18.el6. |
Removing patch3 didn't help, I still get
|
Obviously "main" is in the respective source files sblat2.f etc that it just compiled, I can only imagine there might be an ABI mismatch of some kind (even if it just a matter of underscores appended to module names). Hence the question about compiler versions. I'd try a plain and simple build from the source tarball without your .spec file and rpmbuild environment first to see if the build platform is sane. |
crt1.o is part of static glibc or so. |
Oops - @susilehtola your build log links faded away.....
|
The GNU OpenMP implementation is based on pthreads, so I'm not sure the latter is a problem. As to your first question, I don't really understand what you're asking: the package doesn't use "old static lapack", but uses the LAPACK sources that are shipped with OpenBLAS. |
Yes, but blank OMP build succeeds, but not rpmbuild. |
The crt1.o error just says that for some reason, sblat1 ends up without a main() function; that is, there's no PROGRAM in Fortran lingo. |
I am flipping (your) parameters one by one to see which one turns golden. I can easily produce failed rpmbuild with log. |
@susilehtola it turns out static Not related to this request... Do you think it s possible for you to implement AVX2 support https://github.com/xianyi/OpenBLAS/wiki/faq#binutils based on that RHEL6 once met Haswell? |
@brada4 thanks, I'll check if it builds with -lpthread. As for the second one, it's not possible to compile Fedora EPEL packages with packages not in the RHEL repository. For AVX2 support, one just has to upgrade to RHEL7. |
You can add -lpthread universally, it does no damage as long as it stays linux, there are even some pthread calls mixed into omp code paths. |
It still fails to build - the Maybe the problem is the warning
which ends up as broken code? |
Extremely unlikely - if you look at that file you will see that the only issue is that there are indeed a few tab characters in the indentation of the last argument to SCHK3(). I do not see how a miscompilation would cause the issue you saw. Can you re-upload a build log please ? |
You have typo, must be l - p - thread. |
@brada4 typo was in comment not in build. FWIW I think the -fopenmp flag I had in EXTRALIBS already had fixed this; IIRC I added it because the link phase had failed on some arch and it went through with -fopenmp. |
Scratch build log available at I won't paste it here since XZ is not supported and even zipped it's 1.6 MB. It'll vanish in a day or two tho.... |
Thanks. I think one interesting part is that there is no "-fopenmp" among the gfortran options when building lapack-netlib/SRC - although it was present while building in "INSTALL" just before and it reappears (and stays) when building TESTING/MATGEN immediately afterwards. |
Well |
Still fails with -pthread added to all -fopenmp and correct OpenMP flag usage in the LAPACK routines as well https://kojipkgs.fedoraproject.org//work/tasks/7404/21607404/build.log |
"-fopenmp" still not present in the "make -C openmp" section of your log when building in lapack-netlib/SRC:
|
No wonder it's missing, since your Makefiles strip that out!
Is it supposed to be there or no? |
Try |
You're right -
And this originates in the OpenBLAS 0.2.20 tarball. Maybe you'll want to remove the filter. But this still does not answer why it fails to build on EPEL6, when the exact same package builds just fine on all other distribution versions. |
Any chance to see if building 0.2.19 or earlier in that exact same EPEL6 environment would succeed ? Or any possibility to access that build host and try to do the |
plain 'make USE_OPENMP=1 DY...'works just fine, there is some C/FFLAGS manipulation in RPM SPEC that breaks the test thing (since tests are not part of release package, they can be built with generated flags, not something aligned to system config) |
Unusual CFLAGS/FFLAGS should not hurt as long as the same set is used throughout the build (which seems to be the case here). At the moment the only detail I notice in his log is a stray -fopenmp among the libraries when linking the tests. |
... and all they are single-threaded calling functions that are parallel behind the scenes.... |
It also fails with 0.2.19 with the same problem You can see the versions of all the packages installed in the build root (including ld) at |
Is any version of OpenBLAS known to build on that host (with that combination of flags) in the past ? |
This is really weird. Apparently the build failed on RHEL6 just because of the EXTRALIB argument. |
the errant -fopenmp in your EXTRALIB, or the entire EXTRALIB argument as such ? |
I don't know - I just removed the whole of EXTRALIB. Which is weird, because -fopenmp was already elsewhere in the list of arguments. |
It might have been due to the other EXTRALIB arguments as well. |
Hi,
I'm trying to update the Fedora and Red Hat OpenBLAS packages to 0.2.20, but for some reason it fails to build on the Red Hat Enterprise Linux 6 branch. The problem I'm seeing is a bunch of errors [1] like
This happens even though I have the NO_AVX2=1 flag set.
[1] https://kojipkgs.fedoraproject.org//work/tasks/4289/21074289/build.log
The text was updated successfully, but these errors were encountered: