Skip to content
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

Segfaults CI tests #35

Open
fingolfin opened this issue Feb 4, 2020 · 3 comments
Open

Segfaults CI tests #35

fingolfin opened this issue Feb 4, 2020 · 3 comments

Comments

@fingolfin
Copy link
Member

The version compiled with clang segfaults in Travis CI.

Perhaps a compiler a bug, perhaps a bug in your code? You could try switching Travis from Xenial to Bionic, which has newer compilers, to see if that helps. Or, well, maybe there is a bug somewhere in the code?

@fingolfin
Copy link
Member Author

fingolfin commented Feb 12, 2020

@stevelinton wrote at #36 (comment):

I put in the fix, but it is still segfaulting with clang 7.0.0 on some of the tests. The closet version I have is version 7.1 which seems to work. Version 6 fails to compile the assembler code.

So there are several ways to proceed, not mutually exclusive:

  1. add a test to the build system to reject clang versions older than 7.1
  2. disable the offending assembler code (?!?) with older clang, and fallback to generic replacement code (if there is such a thing?)
  3. find a workaround for the code to avoid the issue (not sure how realistic and worthwhile that is)

And for Travis, we can either ...

  1. modify the Travis setup to install a more recent clang version (see here); or
  2. turn off clang jobs in Travis until the issue is resolved

@fingolfin
Copy link
Member Author

@stevelinton I think the segfaults are gone. The current errors are of a different nature: on macOS, we are now seeing this on Travis:

src/mtx64/osx-pc2.s:167:9: error: instruction requires: AVX-512 ISA
        vmovdqa64 -128(%r9),%zmm0
        ^
src/mtx64/osx-pc2.s:168:9: error: instruction requires: AVX-512 ISA
        vmovdqa64 -64(%r9),%zmm1
        ^

@stevelinton
Copy link
Collaborator

So this is assembler with AVX-512 speciic operations that should be compiled on all systems, but will only be called on avx512 systems (the library checks at run-time).

Probably the best solution is to use -mavx512f (assuming that is supported by the relevant versions) when processing assembler files -- basically telling the compiler to shut up and generate the codes we told it to. I'll see if I can try this.

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

Successfully merging a pull request may close this issue.

2 participants