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

Remove libbacktrace implementation #423

Merged
merged 3 commits into from
May 5, 2021
Merged

Remove libbacktrace implementation #423

merged 3 commits into from
May 5, 2021

Conversation

alexcrichton
Copy link
Member

@alexcrichton alexcrichton commented May 4, 2021

This commit removes the backtrace-sys crate and the libbacktrace
implementation of this crate. For quite some time now the
gimli-symbolize feture has been on-by-default. While libbacktrace
has been an option all relevant features should have been implemented in
gimli-symbolize by now.

The libbacktrace implementation has always been approached with wariness
where it may segfault or cause worse behavior when fed bad debug
information. Debug information is possible to change at runtime, so
libbacktrace has always been a risk for Rust binaries. Additionally
libbacktrace development was very quiet for a very long time and our
patches upstream were generally met with silence. Development seems to
have picked back up upstream but with this crate now switched to gimli
I'm not too personally motivated to check to see if all our fixes have
landed. In general, though, libbacktrace upstream always worked best
with Linux and other platforms were more "best-effort". Additionally
gimli now has more features for supporting compressed and
split-debuginfo as well.

This commit comes about to reduce the maintenance burden on this crate.
Recent changes in rust-lang/rust have actually broken libbacktrace
testing. This appears fixed with sync'ing to the upstream repository of
libbacktrace, but it seems like now's the right time to go ahead and
remove the crate.

Closes #234
Closes #290
Closes #409

This commit removes the `backtrace-sys` crate and the libbacktrace
implementation of this crate. For quite some time now the
`gimli-symbolize` feture has been on-by-default. While `libbacktrace`
has been an option all relevant features should have been implemented in
`gimli-symbolize` by now.

The libbacktrace implementation has always been approached with wariness
where it may segfault or cause worse behavior when fed bad debug
information. Debug information is possible to change at runtime, so
libbacktrace has always been a risk for Rust binaries. Additionally
libbacktrace development was very quite for a very long time and our
patches upstream were generally met with silence. Development seems to
have picked back up upstream but with this crate now switched to gimli
I'm not too personally motivated to check to see if all our fixes have
landed. In general, though, libbacktrace upstream always worked best
with Linux and other platforms were more "best-effort". Additionally
gimli now has more features for supporting compressed and
split-debuginfo as well.

This commit comes about to reduce the maintenance burden on this crate.
Recent changes in rust-lang/rust have actually broken libbacktrace
testing. This appears fixed with sync'ing to the upstream repository of
libbacktrace, but it seems like now's the right time to go ahead and
remove the crate.
@alexcrichton alexcrichton merged commit 5fc4f79 into master May 5, 2021
@alexcrichton alexcrichton deleted the rm-libbacktrace branch May 5, 2021 14:31
matthiaskrgr pushed a commit to matthiaskrgr/rust that referenced this pull request Oct 2, 2022
Use of libbacktrace was removed in
06d565c where we switched to using the
gimili library instead. Note: the backtrace submodule located at
library/backtrace points to backtrace-rs which removed support for using
libbacktrace in rust-lang/backtrace-rs#423.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant