commit 21121eb23103b74692607d7001ad53e871811fd6
parent c408d0a7f97e96491d4eae1ec21043c85716abd2
Author: David Goulet <dgoulet@torproject.org>
Date: Mon, 28 Nov 2022 09:37:12 -0500
Merge branch 'tor-gitlab/mr/652'
Diffstat:
2 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/changes/bsd_libc b/changes/bsd_libc
@@ -0,0 +1,3 @@
+ o Minor bugfixes (compilation):
+ - Fix returning something other than "Unknown N/A" as libc version if we
+ build tor on an O.S. like DragonFlyBSD, FreeBSD, OpenBSD or NetBSD.
diff --git a/src/lib/osinfo/libc.c b/src/lib/osinfo/libc.c
@@ -31,6 +31,9 @@
const char *
tor_libc_get_name(void)
{
+#if defined(__BSD_VISIBLE) || defined(__NETBSD_SOURCE)
+ return "BSD";
+#endif /* defined(__BSD_VISIBLE) || defined(__NETBSD_SOURCE) */
#ifdef __GLIBC__
return "Glibc";
#else /* !defined(__GLIBC__) */
@@ -43,6 +46,21 @@ tor_libc_get_name(void)
const char *
tor_libc_get_version_str(void)
{
+#if defined(__BSD_VISIBLE) || defined(__NETBSD_SOURCE)
+#include <sys/param.h>
+#ifdef __DragonFly_version
+ return STR(__DragonFly_version);
+#endif
+#ifdef __FreeBSD__
+ return STR(__FreeBSD_version);
+#endif
+#ifdef __NetBSD_Version__
+ return STR(__NetBSD_Version__);
+#endif
+#ifdef OpenBSD
+ return STR(OpenBSD);
+#endif
+#endif /* defined(__BSD_VISIBLE) || defined(__NETBSD_SOURCE) */
#ifdef CHECK_LIBC_VERSION
const char *version = gnu_get_libc_version();
if (version == NULL)