Open iphydf opened 10 months ago
Hi.
I think you should be able to use the library like any other, e.g. with
nixpkgs_package(
name = "compiler-rt-libc",
attribute_path = "llvmPackages_16.compiler-rt-libc",
nix_file_content = """import <nixpkgs> { }""",
repository = "@nixpkgs",
)
nixpkgs_package(
name = "compiler-rt-libc.dev",
attribute_path = "llvmPackages_16.compiler-rt-libc.dev",
build_file_content = """\
load("@rules_cc//cc:defs.bzl", "cc_library")
filegroup(
name = "include",
srcs = glob(["include/**/*.h"]),
visibility = ["//visibility:public"],
)
cc_library(
name = "compiler-rt-libc",
srcs = ["@compiler-rt-libc//:lib"],
hdrs = [":include"],
strip_include_prefix = "include",
visibility = ["//visibility:public"],
)
""",
nix_file_content = """import <nixpkgs> { }""",
repository = "@nixpkgs",
)
The problem is that Go stdlib uses that (when compiling with msan) but doesn't declare it, because it's assumed to be part of the toolchain. Same with absl and probably other third party dependencies.
Describe the bug
#include <sanitizer/msan_interface.h>
fails to compile on bazel with nixpkgs. It works withclang++
.To Reproduce Create a C file with
#include <sanitizer/msan_interface.h>
in it. Observe:Expected behavior It should compile.
Environment
Additional context The include directory is known to clang++: