Skip to content

Commit

Permalink
Add workaround for buggy gcc warnings in our Ruby 2.7 image
Browse files Browse the repository at this point in the history
Fixes these bogus warnings (that get turned into errors in our CI):

```
../../../../ext/datadog_profiling_native_extension/collectors_stack.c: In function ‘sample_thread’:
../../../../ext/datadog_profiling_native_extension/collectors_stack.c:303:7: error: missing initializer for field ‘build_id_id’ of ‘struct ddog_prof_Mapping’ [-Werror=missing-field-initializers]
  303 |       .mapping = {.filename = DDOG_CHARSLICE_C(""), .build_id = DDOG_CHARSLICE_C("")},
      |       ^
In file included from /usr/local/bundle/gems/libdatadog-16.0.1.1.0-x86_64-linux/vendor/libdatadog-16.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/../../include/datadog/profiling.h:13,
                 from ../../../../ext/datadog_profiling_native_extension/libdatadog_helpers.h:3,
                 from ../../../../ext/datadog_profiling_native_extension/collectors_stack.c:5:
/usr/local/bundle/gems/libdatadog-16.0.1.1.0-x86_64-linux/vendor/libdatadog-16.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/../../include/datadog/common.h:520:36: note: ‘build_id_id’ declared here
  520 |   struct ddog_prof_ManagedStringId build_id_id;
      |                                    ^~~~~~~~~~~
../../../../ext/datadog_profiling_native_extension/collectors_stack.c: In function ‘maybe_add_placeholder_frames_omitted’:
../../../../ext/datadog_profiling_native_extension/collectors_stack.c:382:5: error: missing initializer for field ‘build_id_id’ of ‘struct ddog_prof_Mapping’ [-Werror=missing-field-initializers]
  382 |     .mapping = {.filename = DDOG_CHARSLICE_C(""), .build_id = DDOG_CHARSLICE_C("")},
      |     ^
In file included from /usr/local/bundle/gems/libdatadog-16.0.1.1.0-x86_64-linux/vendor/libdatadog-16.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/../../include/datadog/profiling.h:13,
                 from ../../../../ext/datadog_profiling_native_extension/libdatadog_helpers.h:3,
                 from ../../../../ext/datadog_profiling_native_extension/collectors_stack.c:5:
/usr/local/bundle/gems/libdatadog-16.0.1.1.0-x86_64-linux/vendor/libdatadog-16.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/../../include/datadog/common.h:520:36: note: ‘build_id_id’ declared here
  520 |   struct ddog_prof_ManagedStringId build_id_id;
      |                                    ^~~~~~~~~~~
../../../../ext/datadog_profiling_native_extension/collectors_stack.c: In function ‘record_placeholder_stack’:
../../../../ext/datadog_profiling_native_extension/collectors_stack.c:429:5: error: missing initializer for field ‘build_id_id’ of ‘struct ddog_prof_Mapping’ [-Werror=missing-field-initializers]
  429 |     .mapping = {.filename = DDOG_CHARSLICE_C(""), .build_id = DDOG_CHARSLICE_C("")},
      |     ^
In file included from /usr/local/bundle/gems/libdatadog-16.0.1.1.0-x86_64-linux/vendor/libdatadog-16.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/../../include/datadog/profiling.h:13,
                 from ../../../../ext/datadog_profiling_native_extension/libdatadog_helpers.h:3,
                 from ../../../../ext/datadog_profiling_native_extension/collectors_stack.c:5:
/usr/local/bundle/gems/libdatadog-16.0.1.1.0-x86_64-linux/vendor/libdatadog-16.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/../../include/datadog/common.h:520:36: note: ‘build_id_id’ declared here
  520 |   struct ddog_prof_ManagedStringId build_id_id;
      |                                    ^~~~~~~~~~~
cc1: all warnings being treated as errors
```
  • Loading branch information
ivoanjo committed Feb 10, 2025
1 parent cc8c4c1 commit 78670f1
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
6 changes: 3 additions & 3 deletions ext/datadog_profiling_native_extension/collectors_stack.c
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,7 @@ void sample_thread(
}

buffer->locations[i] = (ddog_prof_Location) {
.mapping = {.filename = DDOG_CHARSLICE_C(""), .build_id = DDOG_CHARSLICE_C("")},
.mapping = {.filename = DDOG_CHARSLICE_C(""), .build_id = DDOG_CHARSLICE_C(""), .build_id_id = {}},
.function = (ddog_prof_Function) {.name = name_slice, .filename = filename_slice},
.line = line,
};
Expand Down Expand Up @@ -379,7 +379,7 @@ static void maybe_add_placeholder_frames_omitted(VALUE thread, sampling_buffer*
ddog_CharSlice function_name = DDOG_CHARSLICE_C("");
ddog_CharSlice function_filename = {.ptr = frames_omitted_message, .len = strlen(frames_omitted_message)};
buffer->locations[buffer->max_frames - 1] = (ddog_prof_Location) {
.mapping = {.filename = DDOG_CHARSLICE_C(""), .build_id = DDOG_CHARSLICE_C("")},
.mapping = {.filename = DDOG_CHARSLICE_C(""), .build_id = DDOG_CHARSLICE_C(""), .build_id_id = {}},
.function = (ddog_prof_Function) {.name = function_name, .filename = function_filename},
.line = 0,
};
Expand Down Expand Up @@ -426,7 +426,7 @@ void record_placeholder_stack(
ddog_CharSlice placeholder_stack
) {
ddog_prof_Location placeholder_location = {
.mapping = {.filename = DDOG_CHARSLICE_C(""), .build_id = DDOG_CHARSLICE_C("")},
.mapping = {.filename = DDOG_CHARSLICE_C(""), .build_id = DDOG_CHARSLICE_C(""), .build_id_id = {}},
.function = {.name = DDOG_CHARSLICE_C(""), .filename = placeholder_stack},
.line = 0,
};
Expand Down
2 changes: 1 addition & 1 deletion ext/datadog_profiling_native_extension/heap_recorder.c
Original file line number Diff line number Diff line change
Expand Up @@ -678,7 +678,7 @@ static int st_object_records_iterate(DDTRACE_UNUSED st_data_t key, st_data_t val
for (uint16_t i = 0; i < stack->frames_len; i++) {
const heap_frame *frame = &stack->frames[i];
locations[i] = (ddog_prof_Location) {
.mapping = {.filename = DDOG_CHARSLICE_C(""), .build_id = DDOG_CHARSLICE_C("")},
.mapping = {.filename = DDOG_CHARSLICE_C(""), .build_id = DDOG_CHARSLICE_C(""), .build_id_id = {}},
.function = {
.name = {.ptr = frame->name, .len = strlen(frame->name)},
.filename = {.ptr = frame->filename, .len = strlen(frame->filename)},
Expand Down

0 comments on commit 78670f1

Please sign in to comment.