Skip to content

Ruby | Add support for a protobuf debug build #21060

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

Closed
wants to merge 2 commits into from

Conversation

davebenvenuti
Copy link
Contributor

This PR makes a small change to extconf.rb so we can easily build the protobuf_c Ruby bindings with all debug symbols included. We used grpc as a guide, which will produce a debug build if rake is run with GRPC_CONFIG=dbg. Unlike grpc, the protobuf_c build doesn't explicitly strip symbols from the resulting library, but values will be optimized out when stepping through with gdb.

Co-authored-by: Kevin Menard <[email protected]>
Co-authored-by: Randy Stauner <[email protected]>
@davebenvenuti davebenvenuti marked this pull request as ready for review April 2, 2025 23:44
@davebenvenuti davebenvenuti requested a review from a team as a code owner April 2, 2025 23:44
@davebenvenuti davebenvenuti requested review from JasonLunn and removed request for a team April 2, 2025 23:44
@davebenvenuti davebenvenuti changed the title [Ruby] Add support for a protobuf debug build Ruby | Add support for a protobuf debug build Apr 3, 2025
@JasonLunn JasonLunn added ruby 🅰️ safe for tests Mark a commit as safe to run presubmits over labels Apr 3, 2025
@JasonLunn
Copy link
Contributor

Thanks for the contribution, @davebenvenuti

While we wait for the test results from CI, could you update the docs in ruby/README.md to cover the new behavior?

@JasonLunn JasonLunn added wait for user action 🅰️ safe for tests Mark a commit as safe to run presubmits over and removed 🅰️ safe for tests Mark a commit as safe to run presubmits over labels Apr 3, 2025
@github-actions github-actions bot removed the 🅰️ safe for tests Mark a commit as safe to run presubmits over label Apr 3, 2025
@JasonLunn JasonLunn added the 🅰️ safe for tests Mark a commit as safe to run presubmits over label Apr 4, 2025
@github-actions github-actions bot removed the 🅰️ safe for tests Mark a commit as safe to run presubmits over label Apr 4, 2025
@JasonLunn JasonLunn added the 🅰️ safe for tests Mark a commit as safe to run presubmits over label Apr 4, 2025
@github-actions github-actions bot removed the 🅰️ safe for tests Mark a commit as safe to run presubmits over label Apr 4, 2025
copybara-service bot pushed a commit that referenced this pull request Apr 4, 2025
This PR makes a small change to `extconf.rb` so we can easily build the `protobuf_c` Ruby bindings with all debug symbols included.  We used [grpc](https://github.com/grpc/grpc/blob/master/src/ruby/ext/grpc/extconf.rb) as a guide, which will produce a debug build if `rake` is run with `GRPC_CONFIG=dbg`.  Unlike `grpc`, the `protobuf_c` build doesn't explicitly strip symbols from the resulting library, but values will be optimized out when stepping through with `gdb`.

Closes #21060

COPYBARA_INTEGRATE_REVIEW=#21060 from Shopify:ruby-debug-build 353b272
FUTURE_COPYBARA_INTEGRATE_REVIEW=#21060 from Shopify:ruby-debug-build 353b272
PiperOrigin-RevId: 744040924
copybara-service bot pushed a commit that referenced this pull request Apr 4, 2025
This PR makes a small change to `extconf.rb` so we can easily build the `protobuf_c` Ruby bindings with all debug symbols included.  We used [grpc](https://github.com/grpc/grpc/blob/master/src/ruby/ext/grpc/extconf.rb) as a guide, which will produce a debug build if `rake` is run with `GRPC_CONFIG=dbg`.  Unlike `grpc`, the `protobuf_c` build doesn't explicitly strip symbols from the resulting library, but values will be optimized out when stepping through with `gdb`.

Closes #21060

COPYBARA_INTEGRATE_REVIEW=#21060 from Shopify:ruby-debug-build 353b272
FUTURE_COPYBARA_INTEGRATE_REVIEW=#21060 from Shopify:ruby-debug-build 353b272
PiperOrigin-RevId: 744040924
copybara-service bot pushed a commit that referenced this pull request Apr 7, 2025
This PR makes a small change to `extconf.rb` so we can easily build the `protobuf_c` Ruby bindings with all debug symbols included.  We used [grpc](https://github.com/grpc/grpc/blob/master/src/ruby/ext/grpc/extconf.rb) as a guide, which will produce a debug build if `rake` is run with `GRPC_CONFIG=dbg`.  Unlike `grpc`, the `protobuf_c` build doesn't explicitly strip symbols from the resulting library, but values will be optimized out when stepping through with `gdb`.

This change also reconciles an oversight that `-fvisibility=hidden` was not set when building on non-Darwin/Linux/Freebsd platforms.

Closes #21060

COPYBARA_INTEGRATE_REVIEW=#21060 from Shopify:ruby-debug-build 353b272
FUTURE_COPYBARA_INTEGRATE_REVIEW=#21060 from Shopify:ruby-debug-build 353b272
PiperOrigin-RevId: 744040924
@copybara-service copybara-service bot closed this in 59e1f0f Apr 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants