-
Notifications
You must be signed in to change notification settings - Fork 462
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 P.IO toolchain references to GitHub release #1681
Comments
@maxgerhardt the |
Dang it. The GCC/GDB 12.2 version seems to have the same error as I've recently encountered in a forum post: It seemes not possible to start GDB in "pipe" mode. (OpenOCD is started with So while I can compile firmwares perfectly fine with the latest toolchain package on Windows using platform_packages =
toolchain-rp2040-earlephilhower@https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/x86_64-w64-mingw32.arm-none-eabi-d3d2e6b.230824.zip , the project is undebuggable. Same per platformio/platform-ststm32#720 (comment). I'm not yet sure how to resolve that, whether it's a GDB (compile) option or broken in just GDB 12 (regression?), or PlatformIO is doing something wrong.. but it did work with the previous GDB version just fine. |
Do you have the exact command line being run? And is it only Windows like in the ref'd bug or everywhere? No options have changed GCC10->12 (or been touched in a year):
|
Little niggle in the back of my head...if this is Windows only, the "pipe" part of the problem may be an |
I'll look through the source code of the PlatformIO core later but per this it seems plausible to me that first they do I'll also test this on Linux. Plus with the older GDB versions as a sanity check. |
Yes. This is reproducable: With GDB 8.2.50 of the previous toolchain:
But on the new GDB 12.0.50 version:
I also noticed in the working v8 version it was very picky with |
On Ubuntu 22 this does work first try with GDB 12 + newest OpenOCD (i.e. same toolchain versioning as tried + failed on Windows):
So this is indeed only Windows specific. Hm. Let's see if I can't cross-compile GDB 13 to check if it's still a bug.. |
Or, instead of going through all that bug hunting and regression reporting, I could just modify my platform code so that it does return a "debug port" item, then instead of opening a pipe it will try to bind a regular TCP port of my choice (like 3333) and connect to that. But that is praying then that some other program doesn't bind it already. Or, why not do the workaround now to check if it works and report it anyways if it still occurs for GDB 13. |
.. Sadly that does not work in an automated way since, if I give it |
Is there anything I can try to help out here? I unfortunately don't use P.IO outside of building my Marlin instances for my CNC and 3D Printer, but I can try toolchain build changes... |
I'd need a for Windows / MinGW crosscompiled GDB13.2 (https://ftp.gnu.org/gnu/gdb/?C=M;O=D) version, that would help out a lot. |
GCC/GDB 13.2: https://github.com/earlephilhower/pico-quick-toolchain/releases/tag/6.6.6-6 Uses binutils' tag "gdb-13.2-release" because 2_41 had GDB 14 when built. GCC tag is "gcc-13.2.0" |
Oh wow. This instantly works without any modification to platform_packages =
toolchain-rp2040-earlephilhower@https://github.com/earlephilhower/pico-quick-toolchain/releases/download/6.6.6-6/x86_64-w64-mingw32.arm-none-eabi-d3d2e6b.230911.zip I'd love it if we could use this toolchain instead? Do I understand it correctly that GCC is also upgraded von GCC12 to GCC13? |
Yes, I bumped up GCC to 13.2 to match GDB 13.2. HAven't actually guilt anything with the new compiler, though, so no idea if things in the core are busted or more warnings are appearing. This seems to indicate it's a GCC 12.x regression and not related to anything on our ends. Great news! No build or configure changes other than the If it's workable I think I'd like to run GCC 12.3 with the updated binutils GDB 13.2 tag, instead of really bumping to the bleeding edge of GCC. I might paranoid, but I prefer for other people to find and fix compiler bugs before I hit them. 😆 |
@maxgerhardt could you give this release a test w/GDB integration? Only Win32/64/Linux built, but it keeps GCC @ 12.3 and bumbs up all binutils (GDB plus other tools) to #1705 shows it building CI OK (except for Mac which was not built for testing). I'll try some GDB testing after work. |
May fix #1681 due to breakage of GDB 12.3 in Platform.IO
Actually, please try with this full build tools release pre-staged for merge: https://github.com/earlephilhower/pico-quick-toolchain/releases/tag/2.1.0-a |
Fixes Win32 issue with GDB and OpenOCD pipe-mode not working properly. See earlephilhower/arduino-pico#1681
Thanks, can you update your P.IO integration to point to that 2.1.0-a ? I have made that the latest release and would like to get a clean P.IO run before merging the update in #1706 . |
Let's see how maxgerhardt/platform-raspberrypi@ac952da goes in my CI run https://github.com/maxgerhardt/platform-raspberrypi/actions/runs/6176895013/job/16766821370.. Edit: First results do seem positive.. |
So that actually worked on the platform-raspberrypi side. I pushed another update to use the latest arduino-pico core and updated board definitions. I expect this run to also go through normally. Can you rerun CI for #1706? |
Do I need to change anything in this repo to get the update? I re-ran CI and it ended up pulling the 10.3 toolchain again. https://github.com/earlephilhower/arduino-pico/actions/runs/6153488298/job/16767773263 The reason it's failing is the new binutils linker option needed to avoid a spurious warning on linkage, nothing related to GCC or GDB. The warning shows in your runs (non-fatal, but a warning that will show on every build w/o the new options)
|
The github actions file is pointing at the latest platform link, however, I think the cache is still hot and the previous restore (and the fact that the platform URL is always the same) it didn't trigger a fresh platform install.. So two possibilities:
pio pkg install --global --platform https://github.com/maxgerhardt/platform-raspberrypi.git#b036e8727e9f13b2a9ff4e893970a0097d3f2c32 |
Fix #1681 due to breakage of GDB 12.3 in Platform.IO Remove new Binutils linker warning
Clearing caches fixed it. I'm doing a 3.5.0 release since it's a toolchain bump but we should be good now. Thx! |
Great. Just FYI, the "Signed OTA example" CI run shows a warning regarding
|
Ah, one add'l P.IO GCC flag needed. I added it to platform.txt but must've forgotten it in the pio-build.pu. Will fix. #1709 |
I wanted to ask a clarifying question in this thread since I've come across the issue with the debugger using the version of the toolchain in the pio index. currently I need version >=12 to get my project to compile using gnu++20, (or 2a as listed in my build flags), and that worked fine in the version in the index, but I've tried changing to pico-quick-toolchain by changing my platform_packages line to
However that doesn't seem to do what is intended and from my terminal output I can see that it's using:
So I'm not quite sure how to correctly get my project to use the updated toolchain here. |
Well the package this provides is |
Originally posted by @maxgerhardt in #1647 (reply in thread)
The text was updated successfully, but these errors were encountered: