Skip to content

Commit 78670f1

Browse files
committed
Add workaround for buggy gcc warnings in our Ruby 2.7 image
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 ```
1 parent cc8c4c1 commit 78670f1

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

ext/datadog_profiling_native_extension/collectors_stack.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@ void sample_thread(
300300
}
301301

302302
buffer->locations[i] = (ddog_prof_Location) {
303-
.mapping = {.filename = DDOG_CHARSLICE_C(""), .build_id = DDOG_CHARSLICE_C("")},
303+
.mapping = {.filename = DDOG_CHARSLICE_C(""), .build_id = DDOG_CHARSLICE_C(""), .build_id_id = {}},
304304
.function = (ddog_prof_Function) {.name = name_slice, .filename = filename_slice},
305305
.line = line,
306306
};
@@ -379,7 +379,7 @@ static void maybe_add_placeholder_frames_omitted(VALUE thread, sampling_buffer*
379379
ddog_CharSlice function_name = DDOG_CHARSLICE_C("");
380380
ddog_CharSlice function_filename = {.ptr = frames_omitted_message, .len = strlen(frames_omitted_message)};
381381
buffer->locations[buffer->max_frames - 1] = (ddog_prof_Location) {
382-
.mapping = {.filename = DDOG_CHARSLICE_C(""), .build_id = DDOG_CHARSLICE_C("")},
382+
.mapping = {.filename = DDOG_CHARSLICE_C(""), .build_id = DDOG_CHARSLICE_C(""), .build_id_id = {}},
383383
.function = (ddog_prof_Function) {.name = function_name, .filename = function_filename},
384384
.line = 0,
385385
};
@@ -426,7 +426,7 @@ void record_placeholder_stack(
426426
ddog_CharSlice placeholder_stack
427427
) {
428428
ddog_prof_Location placeholder_location = {
429-
.mapping = {.filename = DDOG_CHARSLICE_C(""), .build_id = DDOG_CHARSLICE_C("")},
429+
.mapping = {.filename = DDOG_CHARSLICE_C(""), .build_id = DDOG_CHARSLICE_C(""), .build_id_id = {}},
430430
.function = {.name = DDOG_CHARSLICE_C(""), .filename = placeholder_stack},
431431
.line = 0,
432432
};

ext/datadog_profiling_native_extension/heap_recorder.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -678,7 +678,7 @@ static int st_object_records_iterate(DDTRACE_UNUSED st_data_t key, st_data_t val
678678
for (uint16_t i = 0; i < stack->frames_len; i++) {
679679
const heap_frame *frame = &stack->frames[i];
680680
locations[i] = (ddog_prof_Location) {
681-
.mapping = {.filename = DDOG_CHARSLICE_C(""), .build_id = DDOG_CHARSLICE_C("")},
681+
.mapping = {.filename = DDOG_CHARSLICE_C(""), .build_id = DDOG_CHARSLICE_C(""), .build_id_id = {}},
682682
.function = {
683683
.name = {.ptr = frame->name, .len = strlen(frame->name)},
684684
.filename = {.ptr = frame->filename, .len = strlen(frame->filename)},

0 commit comments

Comments
 (0)