diff --git a/cc/config/aarch64_ubuntu18_gcc8.4/sysroot.BUILD b/cc/config/aarch64_ubuntu18_gcc8.4/sysroot.BUILD index f68c89a4..7d94921d 100644 --- a/cc/config/aarch64_ubuntu18_gcc8.4/sysroot.BUILD +++ b/cc/config/aarch64_ubuntu18_gcc8.4/sysroot.BUILD @@ -180,6 +180,17 @@ cc_toolchain_import( ], ) +# libutil is required by Rust's std library for linking (glibc < 2.34). +cc_toolchain_import( + name = "util", + additional_libs = [ + "lib/aarch64-linux-gnu/libutil-{glibc_version}.so".format(glibc_version = GLIBC_VERSION), + "lib/aarch64-linux-gnu/libutil.so.1", + ], + shared_library = "usr/lib/aarch64-linux-gnu/libutil.so", + static_library = "usr/lib/aarch64-linux-gnu/libutil.a", +) + # This is a group of essential system libraries. The actual glibc library is split # out to fix link ordering problems that cause false undefined symbol positives. cc_toolchain_import( @@ -189,6 +200,7 @@ cc_toolchain_import( ":dynamic_linker", ":libc", ":pthread", + ":util", ], ) diff --git a/cc/config/aarch64_ubuntu20_gcc10/sysroot.BUILD b/cc/config/aarch64_ubuntu20_gcc10/sysroot.BUILD index 900cc266..cbd62dc8 100644 --- a/cc/config/aarch64_ubuntu20_gcc10/sysroot.BUILD +++ b/cc/config/aarch64_ubuntu20_gcc10/sysroot.BUILD @@ -171,6 +171,17 @@ cc_toolchain_import( ], ) +# libutil is required by Rust's std library for linking (glibc < 2.34). +cc_toolchain_import( + name = "util", + additional_libs = [ + "lib/aarch64-linux-gnu/libutil-{glibc_version}.so".format(glibc_version = GLIBC_VERSION), + "lib/aarch64-linux-gnu/libutil.so.1", + ], + shared_library = "usr/lib/aarch64-linux-gnu/libutil.so", + static_library = "usr/lib/aarch64-linux-gnu/libutil.a", +) + # This is a group of essential system libraries. The actual glibc library is split # out to fix link ordering problems that cause false undefined symbol positives. cc_toolchain_import( @@ -180,6 +191,7 @@ cc_toolchain_import( ":dynamic_linker", ":libc", ":pthread", + ":util", ], ) diff --git a/cc/config/x86_64_ubuntu18_gcc8.4/sysroot.BUILD b/cc/config/x86_64_ubuntu18_gcc8.4/sysroot.BUILD index 9a24b056..e9530c25 100644 --- a/cc/config/x86_64_ubuntu18_gcc8.4/sysroot.BUILD +++ b/cc/config/x86_64_ubuntu18_gcc8.4/sysroot.BUILD @@ -197,6 +197,17 @@ cc_toolchain_import( visibility = ["//visibility:public"], ) +# libutil is required by Rust's std library for linking (glibc < 2.34). +cc_toolchain_import( + name = "util", + additional_libs = [ + "lib/x86_64-linux-gnu/libutil-{glibc_version}.so".format(glibc_version = GLIBC_VERSION), + "lib/x86_64-linux-gnu/libutil.so.1", + ], + shared_library = "usr/lib/x86_64-linux-gnu/libutil.so", + static_library = "usr/lib/x86_64-linux-gnu/libutil.a", +) + # This is a group of essential system libraries. The actual glibc library is split # out to fix link ordering problems that cause false undefined symbol positives. cc_toolchain_import( @@ -205,6 +216,7 @@ cc_toolchain_import( ":dynamic_linker", ":libc", ":pthread", + ":util", ":asan", ], visibility = ["//visibility:public"], diff --git a/cc/config/x86_64_ubuntu20_gcc10/sysroot.BUILD b/cc/config/x86_64_ubuntu20_gcc10/sysroot.BUILD index 5b3a16c6..5c1c71bc 100644 --- a/cc/config/x86_64_ubuntu20_gcc10/sysroot.BUILD +++ b/cc/config/x86_64_ubuntu20_gcc10/sysroot.BUILD @@ -176,6 +176,17 @@ cc_toolchain_import( ], ) +# libutil is required by Rust's std library for linking (glibc < 2.34). +cc_toolchain_import( + name = "util", + additional_libs = [ + "lib/x86_64-linux-gnu/libutil-{glibc_version}.so".format(glibc_version = GLIBC_VERSION), + "lib/x86_64-linux-gnu/libutil.so.1", + ], + shared_library = "usr/lib/x86_64-linux-gnu/libutil.so", + static_library = "usr/lib/x86_64-linux-gnu/libutil.a", +) + # This is a group of essential system libraries. The actual glibc library is split # out to fix link ordering problems that cause false undefined symbol positives. cc_toolchain_import( @@ -185,6 +196,7 @@ cc_toolchain_import( ":dynamic_linker", ":libc", ":pthread", + ":util", ], )