diff --git a/foreign_cc/private/cc_toolchain_util.bzl b/foreign_cc/private/cc_toolchain_util.bzl index 9b3397475..3b15578e0 100644 --- a/foreign_cc/private/cc_toolchain_util.bzl +++ b/foreign_cc/private/cc_toolchain_util.bzl @@ -306,6 +306,11 @@ def get_flags_info(ctx, link_output_file = None): ), ), ) + + if "set_file_prefix_map" in dir(ctx.attr) and ctx.attr.set_file_prefix_map: + copts.append("-ffile-prefix-map=$EXT_BUILD_ROOT=.") + cxxopts.append("-ffile-prefix-map=$EXT_BUILD_ROOT=.") + return CxxFlagsInfo( cc = _convert_flags(cc_toolchain_.compiler, _add_if_needed(flags.cc, copts)), cxx = _convert_flags(cc_toolchain_.compiler, _add_if_needed(flags.cxx, cxxopts)), diff --git a/foreign_cc/private/framework.bzl b/foreign_cc/private/framework.bzl index 892467e58..1bb947b6e 100644 --- a/foreign_cc/private/framework.bzl +++ b/foreign_cc/private/framework.bzl @@ -201,6 +201,14 @@ CC_EXTERNAL_RULE_ATTRIBUTES = { doc = "Optional part of the shell script to be added after the make commands", mandatory = False, ), + "set_file_prefix_map": attr.bool( + doc = ( + "Use -ffile-prefix-map with the intention to remove the sandbox path from " + + "debug symbols" + ), + mandatory = False, + default = False, + ), "targets": attr.string_list( doc = ( "A list of targets with in the foreign build system to produce. An empty string (`\"\"`) will result in " +