]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Revert "errno-list: fallback to use our errno name table"
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 29 Jul 2025 13:14:27 +0000 (15:14 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 29 Jul 2025 13:14:27 +0000 (15:14 +0200)
This reverts commit c4ffd0a02075f14c6124b1da2219e15f7e4fd64b.

With this change we fully duplicate the functionality in glibc. This patch
was motivated by glibc missing some names, but those are in the process of
being added:
https://sourceware.org/pipermail/libc-alpha/2025-July/169007.html

src/basic/errno-list.c

index 1cad1f6a5d00f2911d1607a78261e9bed2dc5a81..8de9888083980ea04ab952a20da0135d3da1d760 100644 (file)
@@ -10,7 +10,6 @@ static const struct errno_name* lookup_errno(register const char *str,
                                              register GPERF_LEN_TYPE len);
 
 #include "errno-from-name.inc"
-#include "errno-to-name.inc"
 
 int errno_from_name(const char *name) {
         const struct errno_name *sc;
@@ -25,24 +24,26 @@ int errno_from_name(const char *name) {
         return sc->id;
 }
 
+#if HAVE_STRERRORNAME_NP
 const char* errno_to_name(int id) {
         if (id == 0) /* To stay in line with our own impl */
                 return NULL;
 
+        return strerrorname_np(ABS(id));
+}
+#else
+#  include "errno-to-name.inc"
+
+const char* errno_to_name(int id) {
         if (id < 0)
                 id = -id;
 
-#if HAVE_STRERRORNAME_NP
-        const char *n = strerrorname_np(id);
-        if (n)
-                return n;
-#endif
-
         if ((size_t) id >= ELEMENTSOF(errno_names))
                 return NULL;
 
         return errno_names[id];
 }
+#endif
 
 const char* errno_name_full(int id, char buf[static ERRNO_NAME_BUF_LEN]) {
         const char *a = errno_to_name(id);