aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstddjb
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2025-04-03 03:57:42 +0000
committerLaurent Bercot <ska@appnovation.com>2025-04-03 03:57:42 +0000
commitc8c1cab2b6a2754acbe7ee130c356383d0289f09 (patch)
tree61dc5355355fb3ed9ea323b1ea0bd99e9f76be86 /src/libstddjb
parent3dc14ccbf94d72cd2e9f5a549f97891eb4688021 (diff)
downloadskalibs-c8c1cab2b6a2754acbe7ee130c356383d0289f09.tar.gz
Deprioritize getexecname(), it's bad
Signed-off-by: Laurent Bercot <ska@appnovation.com>
Diffstat (limited to 'src/libstddjb')
-rw-r--r--src/libstddjb/sagetexecname.c36
1 files changed, 18 insertions, 18 deletions
diff --git a/src/libstddjb/sagetexecname.c b/src/libstddjb/sagetexecname.c
index 5ca4ba3..658df1a 100644
--- a/src/libstddjb/sagetexecname.c
+++ b/src/libstddjb/sagetexecname.c
@@ -2,7 +2,7 @@
#include <skalibs/sysdeps.h>
-#if defined(SKALIBS_PROCSELFEXE)
+#if defined(SKALIBS_PROCSELFEXE) /* Linux, midipix, Solaris */
#include <skalibs/stralloc.h>
#include <skalibs/djbunix.h>
@@ -12,20 +12,7 @@ int sagetexecname (stralloc *sa)
return sareadlink(sa, SKALIBS_PROCSELFEXE) ;
}
-#elif defined(SKALIBS_HASGETEXECNAME)
-
-#include <skalibs/nonposix.h>
-#include <stdlib.h>
-
-#include <skalibs/stralloc.h>
-#include <skalibs/djbunix.h>
-
-int sagetexecname (stralloc *sa)
-{
- return sarealpath(sa, getexecname()) ;
-}
-
-#elif defined(SKALIBS_HASKERNPROCPATHNAME)
+#elif defined(SKALIBS_HASKERNPROCPATHNAME) /* FreeBSD, NetBSD */
#include <skalibs/nonposix.h>
#ifdef __NetBSD__
@@ -47,7 +34,7 @@ int sagetexecname (stralloc *sa)
return 0 ;
}
-#elif defined(SKALIBS_HAS_NSGETEXECUTABLEPATH)
+#elif defined(SKALIBS_HAS_NSGETEXECUTABLEPATH) /* MacOS */
#include <skalibs/nonposix.h>
#include <sys/types.h>
@@ -65,7 +52,7 @@ int sagetexecname (stralloc *sa)
return sarealpath(sa, buf) ;
}
-#elif defined(SKALIBS_HASGETAUXVAL)
+#elif defined(SKALIBS_HASGETAUXVAL) /* Hurd */
#include <skalibs/nonposix.h>
#include <sys/auxv.h>
@@ -79,7 +66,7 @@ int sagetexecname (stralloc *sa)
return sarealpath(sa, (char const *)x) ;
}
-#elif defined(SKALIBS_HASDLADDR)
+#elif defined(SKALIBS_HASDLADDR) /* hack that only works with dynamic binaries */
#include <skalibs/nonposix.h>
#include <dlfcn.h>
@@ -96,6 +83,19 @@ int sagetexecname (stralloc *sa)
return 0 ;
}
+#elif defined(SKALIBS_HASGETEXECNAME) /* bad: it will probably give argv[0] */
+
+#include <skalibs/nonposix.h>
+#include <stdlib.h>
+
+#include <skalibs/stralloc.h>
+#include <skalibs/djbunix.h>
+
+int sagetexecname (stralloc *sa)
+{
+ return sarealpath(sa, getexecname()) ;
+}
+
#else /* we tried */
#include <errno.h>