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

Update newlib and libc++ build scripts and artifacts #346

Closed
wants to merge 22 commits into from
Closed

Conversation

bradjc
Copy link
Contributor

@bradjc bradjc commented Sep 12, 2023

This will eventually remove the need for installing newlib.

  • compile libc++ for riscv
  • update newlib
  • provide newlib headers
  • compile libc++ for individual arm targets
  • rename variable in configuration (no longer legacy)
  • use provided libc++ for riscv (not system)
  • bundle all artifacts in some sort of zip file and host on multiple servers
  • update make system to download those artifacts as needed
  • remove artifacts from this repo
  • namespace artifacts so we could easily add support for picolibc if we wanted to
  • update CI to use recent toolchains and OSes

We now package all newlib that is needed, so we don't need instructions
for getting newlib. This also makes riscv easier.
@bradjc
Copy link
Contributor Author

bradjc commented Sep 13, 2023

Arg I can't even test this. With the new homebrew mac arm-none-eabi-gcc:

$  arm-none-eabi-gcc --print-multi-lib
.;
thumb;@mthumb
arm/autofp/v5te/fpu;@marm@mfpu=auto@march=armv5te+fp@mfloat-abi=hard
thumb/autofp/v7/fpu;@mthumb@mfpu=auto@march=armv7+fp@mfloat-abi=hard

So those are the only multilib versions that newlib builds.

Here is the homebrew formula: https://github.com/Homebrew/homebrew-core/blob/master/Formula/a/arm-none-eabi-gcc.rb. It isn't clear to me why those are the multilib targets for the toolchain.

@bradjc
Copy link
Contributor Author

bradjc commented Sep 13, 2023

Compared to the latest version here: https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads

$  ./arm-none-eabi-gcc --print-multi-lib
.;
arm/v5te/softfp;@marm@march=armv5te+fp@mfloat-abi=softfp
arm/v5te/hard;@marm@march=armv5te+fp@mfloat-abi=hard
thumb/nofp;@mthumb@mfloat-abi=soft
thumb/v7/nofp;@mthumb@march=armv7@mfloat-abi=soft
thumb/v7+fp/softfp;@mthumb@march=armv7+fp@mfloat-abi=softfp
thumb/v7+fp/hard;@mthumb@march=armv7+fp@mfloat-abi=hard
thumb/v7-r+fp.sp/softfp;@mthumb@march=armv7-r+fp.sp@mfloat-abi=softfp
thumb/v7-r+fp.sp/hard;@mthumb@march=armv7-r+fp.sp@mfloat-abi=hard
thumb/v7-a/nofp;@mthumb@march=armv7-a@mfloat-abi=soft
thumb/v7-a+fp/softfp;@mthumb@march=armv7-a+fp@mfloat-abi=softfp
thumb/v7-a+fp/hard;@mthumb@march=armv7-a+fp@mfloat-abi=hard
thumb/v7-a+simd/softfp;@mthumb@march=armv7-a+simd@mfloat-abi=softfp
thumb/v7-a+simd/hard;@mthumb@march=armv7-a+simd@mfloat-abi=hard
thumb/v7ve+simd/softfp;@mthumb@march=armv7ve+simd@mfloat-abi=softfp
thumb/v7ve+simd/hard;@mthumb@march=armv7ve+simd@mfloat-abi=hard
thumb/v8-a/nofp;@mthumb@march=armv8-a@mfloat-abi=soft
thumb/v8-a+simd/softfp;@mthumb@march=armv8-a+simd@mfloat-abi=softfp
thumb/v8-a+simd/hard;@mthumb@march=armv8-a+simd@mfloat-abi=hard
thumb/v6-m/nofp;@mthumb@march=armv6s-m@mfloat-abi=soft
thumb/v7-m/nofp;@mthumb@march=armv7-m@mfloat-abi=soft
thumb/v7e-m/nofp;@mthumb@march=armv7e-m@mfloat-abi=soft
thumb/v7e-m+fp/softfp;@mthumb@march=armv7e-m+fp@mfloat-abi=softfp
thumb/v7e-m+fp/hard;@mthumb@march=armv7e-m+fp@mfloat-abi=hard
thumb/v7e-m+dp/softfp;@mthumb@march=armv7e-m+fp.dp@mfloat-abi=softfp
thumb/v7e-m+dp/hard;@mthumb@march=armv7e-m+fp.dp@mfloat-abi=hard
thumb/v8-m.base/nofp;@mthumb@march=armv8-m.base@mfloat-abi=soft
thumb/v8-m.main/nofp;@mthumb@march=armv8-m.main@mfloat-abi=soft
thumb/v8-m.main+fp/softfp;@mthumb@march=armv8-m.main+fp@mfloat-abi=softfp
thumb/v8-m.main+fp/hard;@mthumb@march=armv8-m.main+fp@mfloat-abi=hard
thumb/v8-m.main+dp/softfp;@mthumb@march=armv8-m.main+fp.dp@mfloat-abi=softfp
thumb/v8-m.main+dp/hard;@mthumb@march=armv8-m.main+fp.dp@mfloat-abi=hard
thumb/v8.1-m.main+mve/hard;@mthumb@march=armv8.1-m.main+mve@mfloat-abi=hard

@bradjc
Copy link
Contributor Author

bradjc commented Sep 20, 2023

Testing the newlib script on a new checkout worked for me.

@bradjc
Copy link
Contributor Author

bradjc commented Oct 5, 2023

Still a lot to cleanup, but I've made some progress on packaging the compiled libraries into a zip which can be fetched via zip.

This PR will certainly need to be rebased to remove the commits which add all the artifacts.

@bradjc
Copy link
Contributor Author

bradjc commented Jan 7, 2024

Replaced by #353

@bradjc bradjc closed this Jan 7, 2024
@bradjc bradjc deleted the pr/343 branch January 19, 2024 22:40
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 this pull request may close these issues.

2 participants