Skip to content

Commit

Permalink
chore: fix build on m1 mac (#38363)
Browse files Browse the repository at this point in the history
Signed-off-by: zirain <[email protected]>
  • Loading branch information
zirain authored Feb 10, 2025
1 parent 06f740d commit 2c6b893
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 39 deletions.
1 change: 1 addition & 0 deletions ci/osx-build-config/extensions_build_config.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ EXTENSIONS = {
"envoy.access_loggers.file": "//source/extensions/access_loggers/file:config",
"envoy.formatter.cel": "//source/extensions/formatter/cel:config",
"envoy.filters.network.redis_proxy": "//source/extensions/filters/network/redis_proxy:config",
"envoy.filters.http.dynamic_modules": "//source/extensions/filters/http/dynamic_modules:factory_registration",
}
WINDOWS_EXTENSIONS = {}
EXTENSION_CONFIG_VISIBILITY = ["//:extension_config"]
Expand Down
73 changes: 38 additions & 35 deletions source/extensions/dynamic_modules/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -15,41 +15,44 @@ envoy_cc_library(
"abi.h",
"dynamic_modules.h",
],
linkopts = [
# Export callback symbols so that they can be found by the dynamic modules when loaded via dlopen.
#
# Note: with lld, we can use the glob matching to avoid listing all the symbols, but gold and ld are
# not able to do that. So we list all the symbols here.
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_request_header",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_request_headers",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_request_headers_count",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_set_request_header",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_request_trailer",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_request_trailers",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_request_trailers_count",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_set_request_trailer",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_response_header",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_response_headers",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_response_headers_count",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_set_response_header",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_response_trailer",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_response_trailers",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_response_trailers_count",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_set_response_trailer",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_send_response",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_set_dynamic_metadata_number",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_dynamic_metadata_number",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_set_dynamic_metadata_string",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_dynamic_metadata_string",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_request_body_vector",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_request_body_vector_size",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_append_request_body",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_drain_request_body",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_response_body_vector",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_response_body_vector_size",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_append_response_body",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_drain_response_body",
],
linkopts = select({
"//bazel:apple": [],
"//conditions:default": [
# Export callback symbols so that they can be found by the dynamic modules when loaded via dlopen.
#
# Note: with lld, we can use the glob matching to avoid listing all the symbols, but gold and ld are
# not able to do that. So we list all the symbols here.
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_request_header",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_request_headers",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_request_headers_count",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_set_request_header",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_request_trailer",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_request_trailers",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_request_trailers_count",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_set_request_trailer",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_response_header",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_response_headers",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_response_headers_count",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_set_response_header",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_response_trailer",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_response_trailers",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_response_trailers_count",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_set_response_trailer",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_send_response",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_set_dynamic_metadata_number",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_dynamic_metadata_number",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_set_dynamic_metadata_string",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_dynamic_metadata_string",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_request_body_vector",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_request_body_vector_size",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_append_request_body",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_drain_request_body",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_response_body_vector",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_get_response_body_vector_size",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_append_response_body",
"-Wl,--export-dynamic-symbol=envoy_dynamic_module_callback_http_drain_response_body",
],
}),
deps = [
":abi_version_lib",
"//envoy/common:exception_lib",
Expand Down
8 changes: 4 additions & 4 deletions source/extensions/filters/http/dynamic_modules/abi_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -430,15 +430,15 @@ bool envoy_dynamic_module_callback_http_drain_request_body(
if (!filter->decoder_callbacks_->decodingBuffer()) {
if (filter->current_request_body_) { // See the comment on current_request_body_ for when we
// enter this block.
auto size = std::min(filter->current_request_body_->length(), number_of_bytes);
auto size = std::min<uint64_t>(filter->current_request_body_->length(), number_of_bytes);
filter->current_request_body_->drain(size);
return true;
}
return false;
}

filter->decoder_callbacks_->modifyDecodingBuffer([number_of_bytes](Buffer::Instance& buffer) {
auto size = std::min(buffer.length(), number_of_bytes);
auto size = std::min<uint64_t>(buffer.length(), number_of_bytes);
buffer.drain(size);
});
return true;
Expand Down Expand Up @@ -506,15 +506,15 @@ bool envoy_dynamic_module_callback_http_drain_response_body(
if (!filter->encoder_callbacks_->encodingBuffer()) {
if (filter->current_response_body_) { // See the comment on current_response_body_ for when we
// enter this block.
auto size = std::min(filter->current_response_body_->length(), number_of_bytes);
auto size = std::min<uint64_t>(filter->current_response_body_->length(), number_of_bytes);
filter->current_response_body_->drain(size);
return true;
}
return false;
}

filter->encoder_callbacks_->modifyEncodingBuffer([number_of_bytes](Buffer::Instance& buffer) {
auto size = std::min(buffer.length(), number_of_bytes);
auto size = std::min<uint64_t>(buffer.length(), number_of_bytes);
buffer.drain(size);
});
return true;
Expand Down

0 comments on commit 2c6b893

Please sign in to comment.