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

fix(bw): build fails for some radios when using GCC 13 or later #5731

Closed
wants to merge 2 commits into from

Conversation

philmoz
Copy link
Collaborator

@philmoz philmoz commented Dec 22, 2024

The extra buffer added in #5716 plus the additional RAM used by #5717 overflows for some radios.

This PR reduces the 'bin_allocator' memory used to fit.

@philmoz philmoz added B&W Related generally to black and white LCD radios bug/regression ↩️ A new version of EdgeTX broke something labels Dec 22, 2024
@philmoz philmoz added this to the 2.11 milestone Dec 22, 2024
@philmoz philmoz marked this pull request as draft December 23, 2024 04:07
@philmoz
Copy link
Collaborator Author

philmoz commented Dec 23, 2024

Hmm. The nightly build worked; but my local builds fail for GX12 - not enough room in the CCM region.

@pfeerick
Copy link
Member

pfeerick commented Dec 23, 2024 via email

@philmoz
Copy link
Collaborator Author

philmoz commented Dec 23, 2024

GCC13 & 14 blow out the BSS area by 320 bytes ????

@pfeerick
Copy link
Member

pfeerick commented Dec 23, 2024 via email

@philmoz
Copy link
Collaborator Author

philmoz commented Dec 23, 2024

If I build with GCC 10 it works; but 13 & 14 fail.

@pfeerick
Copy link
Member

pfeerick commented Dec 23, 2024 via email

@philmoz
Copy link
Collaborator Author

philmoz commented Dec 23, 2024

GCC 13 also fails for me on XLiteS and X9D+2019 - flash size too big.
Extra code added in recent PR's.

@pfeerick
Copy link
Member

pfeerick commented Dec 23, 2024 via email

@gagarinlg
Copy link
Member

2.11 should have H7, or we have to insert a 2.12

@gagarinlg
Copy link
Member

gagarinlg commented Dec 23, 2024

And, I wanted to set a fixed GCC version a couple of months ago, to avoid this type of issues.
@philmoz maybe you can diff the .map files from different compiler versions and check where the difference comes from

@philmoz
Copy link
Collaborator Author

philmoz commented Dec 23, 2024

With GCC 13 there is an additional 312 byte buffer called '__sf' and a bunch of functions stating with the same string.
No idea what this is for.

@3djc
Copy link
Collaborator

3djc commented Dec 23, 2024

And, I wanted to set a fixed GCC version a couple of months ago, to avoid this type of issues.

Thats what we have been doing for Otx for similar reasons

@philmoz philmoz changed the title fix(bw): build fails for some radios fix(bw): build fails for some radios when using GCC 13 or later Dec 23, 2024
@philmoz philmoz marked this pull request as ready for review December 23, 2024 09:30
@philmoz
Copy link
Collaborator Author

philmoz commented Dec 23, 2024

Should now work with GCC 13 or 14.

I've added a custom __assert_func which should fix the FLASH size issue with XLites and X9D+2019.

GX12 still needs the reduced memory in the bin_allocator (due to the inclusion of the __sf array).

@philmoz philmoz closed this Dec 23, 2024
@philmoz
Copy link
Collaborator Author

philmoz commented Dec 23, 2024

Moved the changes to the toolchain_update PR #5263 since it is GCC version issues.

@pfeerick
Copy link
Member

And, I wanted to set a fixed GCC version a couple of months ago, to avoid this type of issues.

Thats what we have been doing for Otx for similar reasons

Exactly... which is why only documented and formally "supported" compiler version for EdgeTX has been the one from https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4. Hopefully this will be the only nasty remaining in the transition to GCC 13.x ... we'll find out soon!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
B&W Related generally to black and white LCD radios bug/regression ↩️ A new version of EdgeTX broke something
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants