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

Migrate to msp430-gcc-opensource #1

Open
jovanbulck opened this issue Jun 28, 2017 · 1 comment
Open

Migrate to msp430-gcc-opensource #1

jovanbulck opened this issue Jun 28, 2017 · 1 comment
Assignees

Comments

@jovanbulck
Copy link
Member

Currently the Sancus compiler is based on LLVM/Clang, but is meant to be binary compatible with the GNU-based msp430-gcc tool chain. After compilation, msp430-gcc is furthermore used in sancus-ld as the assembler and to link the final program. However, the msp430-gcc tool chain is officially deprecated and succeeded by an official TI gcc port. As such, we are stuck with outdated GCC v4.6 and GNU binutils 2.21 versions.

We therefore should investigate a migration to the upstream TI GCC port. A few remarks and complications:

  • Unfortunately, TI GCC introduced major ABI changes; including calling conventions. We thus have to update at least the compiler-generated asm stubs in the LLVM pass and sm_entry/exit stubs.
  • For now, we could also install both MSPGCC (msp430-x) and TI GCC (msp430-elf-x) alongside each other, so as to be able to use the more recent GNU binutils in the linker.
@jovanbulck jovanbulck self-assigned this Jun 28, 2017
jovanbulck added a commit that referenced this issue Jul 13, 2017
For now, we use MSPGCC alongside TI GCC to be able to use more
recent GNU binutils features, as discussed in issue #1.
@jovanbulck
Copy link
Member Author

Looks like upstream LLVM has already adopted TI GCC EABI calling conventions:

https://reviews.llvm.org/D29069

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

No branches or pull requests

1 participant