-
Notifications
You must be signed in to change notification settings - Fork 0
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
Replace -g flag by -gdwarf-4 for musl armhf toolchain [AP-3099] #141
Conversation
74e289a
to
f436104
Compare
@swift-nav/build ping |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sbmueller could you give a bit of context for this change? Are there certain toolchains being used that need DWARF-4 debug symbols specifically? Why only on the ARM toolchain?
How do we test bazel rule changes like this to avoid breaking builds?
@jbangelo sure. I'm working on https://swift-nav.atlassian.net/browse/AP-3099. The goal of the ticket is to resolve the CI errors in this job. One of those errors is:
The Jenkins file for the stage is here, using the Docker image In terms of how to test, I was hoping to get more insight from discussions in this PR where this toolchain is used. I'm unfamiliar with everything around the build-working-group yet. If you have other ideas how to fix the error, I'm also happy to have a look. I guess one could also update the MUSL toolchain to binutils >= 2.35, but that seemed like the higher impact change to me. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking around I only see this particular toolchain used in one place, so if your build is fixed by this I don't see a risk of other builds getting impacted.
I do find it odd that the the toolchain we're using here isn't packaged with a matching version of binutils. I have seen something like this happen when you mix different compiler versions and whatever version of binutils your chosen distro packages, but I was under the impression that the ARM toolchain we're using here is completely self contained. Maybe that's not actually the case? Either way I think this is a pretty low risk change.
Thanks for providing the additional context @sbmueller !
The binutils version of the toolchain seems to be too old for the compiler, expecting DWARF5. This change enforces DWARF4.
See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100725