From f7453dcc0386a4a1162ced1a490c096afa13178a Mon Sep 17 00:00:00 2001 From: fanquake Date: Thu, 12 Dec 2019 08:09:43 -0500 Subject: [PATCH] build: remove linking librt for backwards compatibility Now that we require glibc 2.17+, #17538, we can remove linking in librt for backwards compatibility purposes. The clock_* functions from librt were merged into glibc as part of the 2.17 release. * The `clock_*' suite of functions (declared in ) is now available directly in the main C library. Previously it was necessary to link with -lrt to use these functions. This change has the effect that a single-threaded program that uses a function such as `clock_gettime' (and is not linked with -lrt) will no longer implicitly load the pthreads library at runtime and so will not suffer the overheads associated with multi-thread support in other code such as the C++ runtime library. https://sourceware.org/ml/libc-announce/2012/msg00001.html Note that librt is already not linked by the RISC-V and AARCH64 binaries. --- build_msvc/bitcoin_config.h | 3 --- configure.ac | 4 ---- 2 files changed, 7 deletions(-) diff --git a/build_msvc/bitcoin_config.h b/build_msvc/bitcoin_config.h index e892765fde..6afc29b37b 100644 --- a/build_msvc/bitcoin_config.h +++ b/build_msvc/bitcoin_config.h @@ -218,9 +218,6 @@ /* Define to 1 if you have the `rpcrt4' library (-lrpcrt4). */ #define HAVE_LIBRPCRT4 1 -/* Define to 1 if you have the `rt' library (-lrt). */ -/* #undef HAVE_LIBRT */ - /* Define to 1 if you have the `shell32' library (-lshell32). */ #define HAVE_LIBSHELL32 1 diff --git a/configure.ac b/configure.ac index 875491fb99..f28c2760cb 100644 --- a/configure.ac +++ b/configure.ac @@ -693,10 +693,6 @@ AX_GCC_FUNC_ATTRIBUTE([dllimport]) if test x$use_glibc_compat != xno; then - dnl glibc absorbed clock_gettime in 2.17. librt (its previous location) is safe to link - dnl in anyway for back-compat. - AC_CHECK_LIB([rt],[clock_gettime],, AC_MSG_ERROR(librt missing)) - dnl __fdelt_chk's params and return type have changed from long unsigned int to long int. dnl See which one is present here. AC_MSG_CHECKING(__fdelt_chk type)