From f8883bd296bb6dad1f4bd90dba806877eaa32ba4 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Fri, 5 Nov 2021 23:45:29 -0500 Subject: [PATCH] Yank -lrt linking entirely: when statically linked it pulls in pthreads for non-threaded programs, and neither bionic nor musl have it. (This means glibc always does the HASTIMERS syscall wrap.) --- lib/portability.h | 2 ++ scripts/genconfig.sh | 2 +- scripts/make.sh | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/portability.h b/lib/portability.h index ac3d0f12..67727f9c 100644 --- a/lib/portability.h +++ b/lib/portability.h @@ -389,6 +389,8 @@ int timer_create(clock_t c, struct sigevent *se, timer_t *t); int timer_settime(timer_t t, int flags, struct itimerspec *new, void *old); #elif !CFG_TOYBOX_HASTIMERS #include +#include +#include int timer_create_wrap(clockid_t c, struct sigevent *se, timer_t *t); #define timer_create(...) timer_create_wrap(__VA_ARGS__) int timer_settime_wrap(timer_t t, int flags, struct itimerspec *val, diff --git a/scripts/genconfig.sh b/scripts/genconfig.sh index 95b901ed..5498be53 100755 --- a/scripts/genconfig.sh +++ b/scripts/genconfig.sh @@ -113,7 +113,7 @@ EOF #include int main(void) { copyfilerange(0, 0, 1, 0, 123, 0); } EOF - probesymbol TOYBOX_HASTIMERS -lrt << EOF + probesymbol TOYBOX_HASTIMERS << EOF #include #include int main(void) {void *x=0;timer_create(CLOCK_MONOTONIC,x,x);} diff --git a/scripts/make.sh b/scripts/make.sh index 60b5bcbf..51100eec 100755 --- a/scripts/make.sh +++ b/scripts/make.sh @@ -108,7 +108,7 @@ then # and skip nonexistent libraries for it. > generated/optlibs.dat - for i in util crypt m resolv rt selinux smack attr crypto z log iconv tls ssl + for i in util crypt m resolv selinux smack attr crypto z log iconv tls ssl do echo "int main(int argc, char *argv[]) {return 0;}" | \ ${CROSS_COMPILE}${CC} $CFLAGS $LDFLAGS -xc - -o generated/libprobe $LDASNEEDED -l$i > /dev/null 2>/dev/null && -- 2.39.2