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

Rationalize arm-gcc builds in all.sh #3299

Open
gilles-peskine-arm opened this issue May 4, 2020 · 0 comments
Open

Rationalize arm-gcc builds in all.sh #3299

gilles-peskine-arm opened this issue May 4, 2020 · 0 comments
Labels
component-platform Portability layer and build scripts enhancement

Comments

@gilles-peskine-arm
Copy link
Contributor

gilles-peskine-arm commented May 4, 2020

In all.sh, we have arm builds with Arm Compiler, IAR, and GCC. The GCC builds evolved in an ad hoc way and could use some clean up.

This could use some rationalization.

  • We should ensure that we're building all of the assembly variants. (Note that some assembly is disabled at -O0.)
  • There should be at least one thumb no-assembly build and one non-thumb no-assembly build.
  • The builds with MBEDTLS_NO_64BIT_MULTIPLICATION and with MBEDTLS_NO_UDBL_DIVISION should not enable assembly, otherwise we may be missing an occurrence of 64-bit mul/div.
  • Review the optimization levels. We definitely want some -Os builds, and we need -O0 on no-assembly builds. Maybe we should have some -O2 builds as well.
  • We should use more varied compilers. The “Debian armel” build should use the same compiler (arm-linux-gnueabi-gcc).
  • We should add at least one Aarch64 build. Writing the corresponding assembly is out of scope here.
  • We should test all of these builds, but that's out of scope here.

The goal of this PR is to rationalize the set of 32-bit arm builds with free compilers in all.sh. If installing the right compilers on our CI systems is not easy, this can be deferred: file a follow-up issue and add a support_build_xxx function in all.sh.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component-platform Portability layer and build scripts enhancement
Projects
None yet
Development

No branches or pull requests

1 participant