Kefu Chai
1bd2ed7826
build: cmake: detect and link against GnuTLS library
before this change, in the CMake-based building system, we rely on
Seastar to provide this linkage, but this is wrong and fragile. as
Seastar is not supposed to expose and provide GnuTLS symbols. that's
why we have following build failure:
```
: && /home/kefu/.local/bin/clang++ -g -Og -g -gz -Xlinker --build-id=sha1 --ld-path=ld.lld -dynamic-linker=/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////lib64/ld-linux-x86-64.so.2 /home/kefu/dev/scylladb/build/Debug/seastar/libseastar.so -fsanitize=address -fsanitize=undefined /usr/lib64/libboost_program_options.so /usr/lib64/libboost_thread.so /usr/lib64/libcares.so /usr/lib64/libfmt.so.11.0.2 -L/usr/lib64 -llz4 CMakeFiles/scylla_version.dir/Debug/release.cc.o CMakeFiles/scylla.dir/Debug/main.cc.o -o Debug/scylla -L/home/kefu/dev/scylladb/idl/absl::headers -Wl,-rpath,/home/kefu/dev/scylladb/idl/absl::headers:/home/kefu/dev/scylladb/build/Debug/seastar Debug/libscylla-main.a api/Debug/libapi.a alternator/Debug/libalternator.a db/Debug/libdb.a cdc/Debug/libcdc.a compaction/Debug/libcompaction.a cql3/Debug/libcql3.a data_dictionary/Debug/libdata_dictionary.a gms/Debug/libgms.a index/Debug/libindex.a lang/Debug/liblang.a message/Debug/libmessage.a mutation/Debug/libmutation.a mutation_writer/Debug/libmutation_writer.a raft/Debug/libraft.a readers/Debug/libreaders.a redis/Debug/libredis.a repair/Debug/librepair.a replica/Debug/libreplica.a schema/Debug/libschema.a service/Debug/libservice.a sstables/Debug/libsstables.a streaming/Debug/libstreaming.a test/perf/Debug/libtest-perf.a tools/Debug/libtools.a transport/Debug/libtransport.a types/Debug/libtypes.a utils/Debug/libutils.a Debug/seastar/libseastar.so /usr/lib64/libyaml-cpp.so /usr/lib64/libboost_program_options.so.1.83.0 test/lib/Debug/libtest-lib.a -Xlinker --push-state -Xlinker --whole-archive auth/Debug/libscylla_auth.a -Xlinker --pop-state /usr/lib64/libcrypt.so cdc/Debug/libcdc.a compaction/Debug/libcompaction.a mutation_writer/Debug/libmutation_writer.a -Xlinker --push-state -Xlinker --whole-archive dht/Debug/libscylla_dht.a -Xlinker --pop-state index/Debug/libindex.a -Xlinker --push-state -Xlinker --whole-archive locator/Debug/libscylla_locator.a -Xlinker --pop-state message/Debug/libmessage.a gms/Debug/libgms.a sstables/Debug/libsstables.a readers/Debug/libreaders.a schema/Debug/libschema.a -Xlinker --push-state -Xlinker --whole-archive tracing/Debug/libscylla_tracing.a -Xlinker --pop-state Debug/libscylla-main.a -Xlinker --push-state -Xlinker --whole-archive Debug/libscylla-zstd.a -Xlinker --pop-state /usr/lib64/libzstd.so abseil/absl/strings/Debug/libabsl_cord.a abseil/absl/strings/Debug/libabsl_cordz_info.a abseil/absl/strings/Debug/libabsl_cord_internal.a abseil/absl/strings/Debug/libabsl_cordz_functions.a abseil/absl/strings/Debug/libabsl_cordz_handle.a abseil/absl/crc/Debug/libabsl_crc_cord_state.a abseil/absl/crc/Debug/libabsl_crc32c.a abseil/absl/crc/Debug/libabsl_crc_internal.a abseil/absl/crc/Debug/libabsl_crc_cpu_detect.a abseil/absl/strings/Debug/libabsl_str_format_internal.a service/Debug/libservice.a node_ops/Debug/libnode_ops.a service/Debug/libservice.a node_ops/Debug/libnode_ops.a raft/Debug/libraft.a repair/Debug/librepair.a streaming/Debug/libstreaming.a replica/Debug/libreplica.a abseil/absl/container/Debug/libabsl_raw_hash_set.a abseil/absl/hash/Debug/libabsl_hash.a abseil/absl/hash/Debug/libabsl_city.a abseil/absl/types/Debug/libabsl_bad_variant_access.a abseil/absl/hash/Debug/libabsl_low_level_hash.a abseil/absl/types/Debug/libabsl_bad_optional_access.a abseil/absl/container/Debug/libabsl_hashtablez_sampler.a abseil/absl/profiling/Debug/libabsl_exponential_biased.a abseil/absl/synchronization/Debug/libabsl_synchronization.a abseil/absl/debugging/Debug/libabsl_stacktrace.a abseil/absl/synchronization/Debug/libabsl_graphcycles_internal.a abseil/absl/synchronization/Debug/libabsl_kernel_timeout_internal.a abseil/absl/debugging/Debug/libabsl_symbolize.a abseil/absl/debugging/Debug/libabsl_debugging_internal.a abseil/absl/base/Debug/libabsl_malloc_internal.a abseil/absl/debugging/Debug/libabsl_demangle_internal.a abseil/absl/time/Debug/libabsl_time.a abseil/absl/strings/Debug/libabsl_strings.a abseil/absl/strings/Debug/libabsl_strings_internal.a abseil/absl/strings/Debug/libabsl_string_view.a abseil/absl/base/Debug/libabsl_throw_delegate.a abseil/absl/numeric/Debug/libabsl_int128.a abseil/absl/base/Debug/libabsl_base.a abseil/absl/base/Debug/libabsl_raw_logging_internal.a abseil/absl/base/Debug/libabsl_log_severity.a abseil/absl/base/Debug/libabsl_spinlock_wait.a -lrt abseil/absl/time/Debug/libabsl_civil_time.a abseil/absl/time/Debug/libabsl_time_zone.a -lsystemd /usr/lib64/libz.so /usr/lib64/libdeflate.so types/Debug/libtypes.a utils/Debug/libutils.a /usr/lib64/libyaml-cpp.so /usr/lib64/libcryptopp.so /usr/lib64/libboost_regex.so.1.83.0 /usr/lib64/libicui18n.so /usr/lib64/libicuuc.so -ldl /usr/lib64/libboost_unit_test_framework.so.1.83.0 Debug/seastar/libseastar_perf_testing.so /usr/lib64/libjsoncpp.so.1.9.5 db/Debug/libdb.a data_dictionary/Debug/libdata_dictionary.a cql3/Debug/libcql3.a transport/Debug/libtransport.a cql3/Debug/libcql3.a transport/Debug/libtransport.a lang/Debug/liblang.a /usr/lib64/liblua-5.4.so -lm rust/Debug/libwasmtime_bindings.a rust/librust_combined.a /usr/lib64/libsnappy.so.1.2.1 mutation/Debug/libmutation.a Debug/seastar/libseastar.so /usr/lib64/liblz4.so /usr/lib64/libxxhash.so && :
ld.lld: error: undefined symbol: gnutls_hmac_fast
>>> referenced by aws_sigv4.cc:21 (/home/kefu/dev/scylladb/utils/aws_sigv4.cc:21)
>>> aws_sigv4.cc.o:(utils::aws::hmac_sha256(std::basic_string_view<char, std::char_traits<char>>, std::basic_string_view<char, std::char_traits<char>>)) in archive utils/Debug/libutils.a
ld.lld: error: undefined symbol: gnutls_strerror
>>> referenced by aws_sigv4.cc:23 (/home/kefu/dev/scylladb/utils/aws_sigv4.cc:23)
>>> aws_sigv4.cc.o:(utils::aws::hmac_sha256(std::basic_string_view<char, std::char_traits<char>>, std::basic_string_view<char, std::char_traits<char>>)) in archive utils/Debug/libutils.a
```
in this change, we detect this library, and link its caller against it.
this addresses the link failure.
Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
2024-10-18 08:36:52 +08:00
..
2023-09-11 14:38:46 +03:00
2024-10-08 12:03:30 +03:00
2024-10-13 18:32:34 +03:00
2024-07-08 16:08:27 +02:00
2024-01-18 12:50:06 +02:00
2024-10-01 14:02:50 +03:00
2023-12-02 22:37:22 +02:00
2024-08-05 08:23:35 +03:00
2023-09-04 16:14:38 +03:00
2024-09-11 23:21:40 +03:00
2024-10-01 14:02:50 +03:00
2024-01-18 12:50:06 +02:00
2024-09-11 23:21:40 +03:00
2024-04-19 07:44:07 +03:00
2023-12-12 21:09:51 +08:00
2024-08-05 08:23:35 +03:00
2024-06-24 12:06:01 +05:30
2024-06-24 12:06:01 +05:30
2024-08-05 08:23:35 +03:00
2023-05-07 17:17:34 +03:00
2024-08-05 08:23:35 +03:00
2023-09-01 22:34:41 +02:00
2024-10-04 17:39:38 +02:00
2024-10-07 21:11:23 +03:00
2024-10-07 21:16:03 +03:00
2024-10-18 08:36:52 +08:00
2024-08-05 08:23:35 +03:00
2024-08-05 08:23:35 +03:00
2024-07-18 18:38:22 +03:00
2024-10-08 12:03:15 +03:00
2024-09-25 15:45:42 +03:00
2024-09-27 01:24:54 +02:00
2024-01-18 12:50:06 +02:00
2024-10-07 21:19:14 +03:00
2024-08-05 08:23:35 +03:00
2023-12-20 10:25:03 +02:00
2024-05-18 00:24:00 +03:00
2024-05-18 00:24:00 +03:00
2024-09-30 12:07:15 +08:00
2024-02-01 12:20:23 +05:30
2024-08-11 13:52:35 +03:00
2024-05-26 16:45:42 +03:00
2024-08-04 15:32:01 +03:00
2024-08-05 08:23:35 +03:00
2024-08-05 08:23:35 +03:00
2024-07-10 20:39:01 +03:00
2024-10-07 21:28:36 +03:00
2024-08-05 08:23:35 +03:00
2024-04-19 07:44:07 +03:00
2024-01-18 12:50:06 +02:00
2024-02-01 14:50:17 +02:00
2024-05-26 16:45:42 +03:00
2024-08-05 08:23:35 +03:00
2024-02-02 15:20:40 +01:00
2024-08-05 08:23:35 +03:00
2024-10-07 21:32:16 +03:00
2024-09-27 01:24:54 +02:00
2024-10-07 10:55:48 +03:00
2024-05-27 17:34:38 +03:00
2024-01-23 13:12:34 +02:00
2024-08-22 23:34:24 +03:00
2024-09-18 13:59:22 +03:00
2024-03-12 14:53:55 +08:00
2024-04-19 07:44:07 +03:00
2024-08-05 08:23:35 +03:00
2024-10-07 10:55:48 +03:00
2024-08-05 08:23:35 +03:00
2024-10-07 17:26:01 +03:00
2024-08-05 08:23:35 +03:00
2024-08-05 08:23:35 +03:00
2024-09-11 23:21:40 +03:00
2024-10-01 14:02:50 +03:00
2024-10-17 13:41:15 +03:00
2024-08-05 08:23:35 +03:00
2024-10-08 12:07:14 +03:00
2024-08-05 08:23:35 +03:00
2024-08-05 08:23:35 +03:00
2024-02-23 11:32:41 +08:00
2024-04-19 22:56:13 +08:00
2023-11-20 23:02:41 +02:00
2024-07-04 10:07:48 +03:00
2023-12-02 22:37:22 +02:00
2024-06-24 08:24:43 +03:00
2024-10-01 14:02:50 +03:00
2024-02-09 17:00:33 +01:00
2024-10-07 21:11:07 +03:00
2024-01-31 16:45:09 +02:00
2024-08-05 08:23:35 +03:00
2024-02-07 18:31:28 +01:00
2024-08-05 08:23:35 +03:00
2024-01-31 09:16:10 +02:00
2023-12-02 22:37:22 +02:00
2024-02-02 22:12:57 +08:00
2024-08-05 08:23:35 +03:00
2024-08-05 08:23:35 +03:00
2024-09-12 15:22:49 +03:00
2024-10-06 12:47:51 +03:00
2023-06-26 11:10:38 +03:00
2023-05-21 11:33:38 +04:00
2024-10-01 14:02:50 +03:00
2023-05-11 16:31:23 +03:00
2024-04-19 22:57:36 +08:00
2024-08-08 10:42:09 +02:00
2024-06-18 23:36:30 +05:30
2024-08-15 02:12:58 +02:00
2024-08-05 08:23:35 +03:00
2024-08-19 17:20:12 +03:00
2024-04-23 12:09:05 +03:00
2024-08-05 08:23:35 +03:00
2023-06-15 15:52:50 +04:00
2024-10-07 17:30:12 +03:00
2023-12-02 22:37:22 +02:00
2024-08-19 17:20:12 +03:00
2023-12-02 22:37:22 +02:00
2024-04-30 09:07:22 +03:00
2024-08-05 08:23:35 +03:00
2024-09-11 23:21:40 +03:00
2024-08-05 08:23:35 +03:00
2024-08-13 10:02:43 +02:00
2024-10-01 14:02:50 +03:00
2024-05-18 00:24:00 +03:00