Skip to content

Linking error when building //oak_containers/syslogd:syslogd #5050

Description

@hvolkmer

Based on latest checkout from today:

$ nix develop .#githubBuildShell --command just oak_containers_tests

(or)

$ nix develop .#githubBuildShell --command bazel build //oak_containers/syslogd:syslogd
[...]
  = note: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: warning: libcap.so.2, needed by /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so, not found (try using -rpath or -rpath-link)
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: warning: libgcrypt.so.20, needed by /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so, not found (try using -rpath or -rpath-link)
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: warning: liblzma.so.5, needed by /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so, not found (try using -rpath or -rpath-link)
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: warning: libzstd.so.1, needed by /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so, not found (try using -rpath or -rpath-link)
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: warning: liblz4.so.1, needed by /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so, not found (try using -rpath or -rpath-link)
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `gcry_md_read@GCRYPT_1.6'
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `lzma_stream_decoder@XZ_5.0'
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `gcry_md_close@GCRYPT_1.6'
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `gcry_md_setkey@GCRYPT_1.6'
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `ZSTD_DStreamOutSize'
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `gcry_md_copy@GCRYPT_1.6'
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `gcry_md_ctl@GCRYPT_1.6'
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `LZ4_versionNumber'
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `gcry_md_open@GCRYPT_1.6'
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `ZSTD_getFrameContentSize'
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `gcry_control@GCRYPT_1.6'
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `ZSTD_decompressStream'
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `lzma_code@XZ_5.0'
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `gcry_md_write@GCRYPT_1.6'
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `ZSTD_freeDCtx'
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `ZSTD_createDCtx'
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `ZSTD_isError'
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `LZ4_decompress_safe'
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `gcry_md_get_algo_dlen@GCRYPT_1.6'
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `gcry_md_reset@GCRYPT_1.6'
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `LZ4_decompress_safe_partial'
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `ZSTD_getErrorCode'
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `lzma_end@XZ_5.0'
          /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/gcc_toolchain_x86_64_files/bin/x86_64-linux-ld: /home/hvolkmer/.cache/bazel/_bazel_hvolkmer/4c21be3a181200ae522617c823dd8903/external/oak_cc_toolchain_sysroot//usr/lib/x86_64-linux-gnu/libsystemd.so: undefined reference to `gcry_check_version@GCRYPT_1.6'
          collect2: error: ld returned 1 exit status
[...]

This can be fixed by applying:

diff --git i/oak_containers/syslogd/BUILD w/oak_containers/syslogd/BUILD
index 2940e2ce0d..d2acacae71 100644
--- i/oak_containers/syslogd/BUILD
+++ w/oak_containers/syslogd/BUILD
@@ -38,6 +38,12 @@ rust_binary(
         "@oak_crates_index//:signal-hook-tokio",
         "@oak_crates_index//:tokio",
         "@oak_crates_index//:tokio-stream",
+         ":zstd",
+         ":cap",
+         ":lzma",
+         ":lz4",
+         ":gcrypt",
+         ":gpg-error",
     ],
 )

@@ -45,3 +51,50 @@ alias(
     name = "syslogd",
     actual = ":oak_containers_syslogd",
 )
+
+cc_library(
+  name ="zstd",
+  srcs=[],
+  hdrs=[],
+  linkopts = ["-lzstd"],
+  visibility = ["//visibility:public"],
+)
+
+cc_library(
+  name ="cap",
+  srcs=[],
+  hdrs=[],
+  linkopts = ["-lcap"],
+  visibility = ["//visibility:public"],
+)
+
+cc_library(
+  name ="lzma",
+  srcs=[],
+  hdrs=[],
+  linkopts = ["-llzma"],
+  visibility = ["//visibility:public"],
+)
+
+cc_library(
+  name ="lz4",
+  srcs=[],
+  hdrs=[],
+  linkopts = ["-llz4"],
+  visibility = ["//visibility:public"],
+)
+cc_library(
+  name ="gcrypt",
+  srcs=[],
+  hdrs=[],
+   linkopts = ["-lgcrypt"],
+  visibility = ["//visibility:public"],
+)
+
+cc_library(
+  name ="gpg-error",
+  srcs=[],
+  hdrs=[],
+  linkopts = ["-lgpg-error"],
+  visibility = ["//visibility:public"],
+)

Is there a better way of fixing this?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions