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

Travis s390x Makefile builds broken with gcc-7 #9524

Closed
pdillinger opened this issue Feb 8, 2022 · 2 comments
Closed

Travis s390x Makefile builds broken with gcc-7 #9524

pdillinger opened this issue Feb 8, 2022 · 2 comments

Comments

@pdillinger
Copy link
Contributor

Since #9481 we have Travis builds configured to use gcc-7 by default, but on s390x we get weird messages suggesting the assembler is not compatible with the compiler, as we pass -march=native to the compiler:

Assembler messages:
Error: invalid switch -march=z14
Error: unrecognized option -march=z14

Note that the cmake build passes, perhaps because it is able to find and use the right assembler. If we upgrade from using Ubuntu 16 to Ubuntu 20, presumably we would be in a better supported space because the default compiler would support C++17 and we don't need to download another one.

My attempts to ssh into the Travis job to debug have failed with "wrong credentials". ¯\(ツ)

@pdillinger
Copy link
Contributor Author

@adamretter Any chance you or someone can look into this? It's not a blocker, but we'd like to improve our Travis build status if able.

@pdillinger
Copy link
Contributor Author

ajkr pushed a commit that referenced this issue Mar 7, 2022
Summary:
Fix g++ -march=native detection and reenable s390x in travis

This PR fixes s390x assembler messages:
```
Error: invalid switch -march=z14
Error: unrecognized option -march=z14
```

The s390x travis build was failing with gcc-7 because the assembler on
ubuntu 16.04 is too old to recognize the z14 model so it doesn't work
with -march=native on a z14 machine. It fixes the check for the
-march=native flag so that the assembler will get called and correctly
fail on ubuntu 16.04 which will cause the build to fall back to
-march=z196 which works.

The other changes are needed so builds work more consistently on
s390x:

1. Set make parallelism to 1 for s390x: The default was 4 previously
but I saw frequent internal compiler errors on travis probably due to
low resources. The `platform_dependent` job works more consistently
but is roughly 10 minutes slower although it varies.
2. Remove status_checked jobs, as we are relying on CircleCI for
these now and do not really need platform coverage on them.

Fixes #9524

Pull Request resolved: #9631

Test Plan: CI

Reviewed By: ajkr

Differential Revision: D34553989

Pulled By: pdillinger

fbshipit-source-id: a6e3a7276446721c4c0bebc4ed217c2ca2b53f11
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.

1 participant