summaryrefslogtreecommitdiff
path: root/net/haproxy
diff options
context:
space:
mode:
authorDmitry Sivachenko <demon@FreeBSD.org>2024-03-02 17:37:03 +0000
committerDmitry Sivachenko <demon@FreeBSD.org>2024-03-02 17:38:16 +0000
commitd4a8c16f3c4b322708444d6f245d15d12bfc5c8b (patch)
tree19b62021bd487a30f11aba9e440fb2ccc24873dd /net/haproxy
parentbenchmarks/ior: Move man pages to share/man (diff)
net/haproxy: fix build on recent -current.
Submitted by: brooks
Diffstat (limited to 'net/haproxy')
-rw-r--r--net/haproxy/files/patch-src_tools.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/net/haproxy/files/patch-src_tools.c b/net/haproxy/files/patch-src_tools.c
new file mode 100644
index 000000000000..598f50cbe965
--- /dev/null
+++ b/net/haproxy/files/patch-src_tools.c
@@ -0,0 +1,32 @@
+--- src/tools.c.orig
++++ src/tools.c
+@@ -17,9 +17,7 @@
+ #endif
+
+ #if defined(__FreeBSD__)
+-#include <elf.h>
+-#include <dlfcn.h>
+-extern void *__elf_aux_vector;
++#include <sys/auxv.h>
+ #endif
+
+ #if defined(__NetBSD__)
+@@ -5018,13 +5016,11 @@
+ if (execfn && execfn != ENOENT)
+ ret = (const char *)execfn;
+ #elif defined(__FreeBSD__)
+- Elf_Auxinfo *auxv;
+- for (auxv = __elf_aux_vector; auxv->a_type != AT_NULL; ++auxv) {
+- if (auxv->a_type == AT_EXECPATH) {
+- ret = (const char *)auxv->a_un.a_ptr;
+- break;
+- }
+- }
++ static char execpath[MAXPATHLEN];
++ if (execpath[0] == '\0')
++ elf_aux_info(AT_EXECPATH, execpath, MAXPATHLEN);
++ if (execpath[0] != '\0')
++ ret = execpath;
+ #elif defined(__NetBSD__)
+ AuxInfo *auxv;
+ for (auxv = _dlauxinfo(); auxv->a_type != AT_NULL; ++auxv) {