From: Yu Watanabe Date: Sun, 8 Jun 2025 01:07:54 +0000 (+0900) Subject: musl: introduce dummy function for gnu_get_libc_version() X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=03d0fa4e4f824b725e3f250f70f4725c569c60a4;p=thirdparty%2Fsystemd.git musl: introduce dummy function for gnu_get_libc_version() As the header gnu/libc-version.h and gnu_get_libc_version() function are glibc specific, and musl does not provide them. --- diff --git a/src/include/musl/gnu/libc-version.h b/src/include/musl/gnu/libc-version.h new file mode 100644 index 00000000000..328b53e166d --- /dev/null +++ b/src/include/musl/gnu/libc-version.h @@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +#pragma once + +#include + +static inline const char* gnu_get_libc_version(void) { + return ""; +} diff --git a/src/test/test-condition.c b/src/test/test-condition.c index 11b3a424189..1bae2e3dd83 100644 --- a/src/test/test-condition.c +++ b/src/test/test-condition.c @@ -669,12 +669,14 @@ TEST(condition_test_version) { condition_free(condition); /* Test glibc version */ + bool has = !isempty(gnu_get_libc_version()); + ASSERT_NOT_NULL((condition = condition_new(CONDITION_VERSION, "glibc > 1", false, false))); - ASSERT_OK_POSITIVE(condition_test(condition, environ)); + ASSERT_OK_EQ(condition_test(condition, environ), has); condition_free(condition); ASSERT_NOT_NULL((condition = condition_new(CONDITION_VERSION, "glibc < 2", false, false))); - ASSERT_OK_ZERO(condition_test(condition, environ)); + ASSERT_OK_EQ(condition_test(condition, environ), !has); condition_free(condition); ASSERT_NOT_NULL((condition = condition_new(CONDITION_VERSION, "glibc < 9999", false, false))); @@ -686,15 +688,27 @@ TEST(condition_test_version) { condition_free(condition); v = strjoina("glibc = ", gnu_get_libc_version()); - ASSERT_NOT_NULL((condition = condition_new(CONDITION_VERSION, v, false, false))); - ASSERT_OK_POSITIVE(condition_test(condition, environ)); + if (has) + ASSERT_OK_POSITIVE(condition_test(condition, environ)); + else + ASSERT_ERROR(condition_test(condition, environ), EINVAL); condition_free(condition); v = strjoina("glibc != ", gnu_get_libc_version()); - ASSERT_NOT_NULL((condition = condition_new(CONDITION_VERSION, v, false, false))); - ASSERT_OK_ZERO(condition_test(condition, environ)); + if (has) + ASSERT_OK_ZERO(condition_test(condition, environ)); + else + ASSERT_ERROR(condition_test(condition, environ), EINVAL); + condition_free(condition); + + ASSERT_NOT_NULL((condition = condition_new(CONDITION_VERSION, "glibc $= ?*", false, false))); + ASSERT_OK_EQ(condition_test(condition, environ), has); + condition_free(condition); + + ASSERT_NOT_NULL((condition = condition_new(CONDITION_VERSION, "glibc !$= ?*", false, false))); + ASSERT_OK_EQ(condition_test(condition, environ), !has); condition_free(condition); }