1diff --git a/Makefile.am b/Makefile.am
2index 194e111..0a095b5 100644
3--- a/Makefile.am
4+++ b/Makefile.am
5@@ -80,8 +80,7 @@ EXTRA_DIST += libkmod/README \
6 libkmod/COPYING testsuite/COPYING tools/COPYING COPYING
7
8 libkmod_libkmod_la_LDFLAGS = $(AM_LDFLAGS) \
9- -version-info $(LIBKMOD_CURRENT):$(LIBKMOD_REVISION):$(LIBKMOD_AGE) \
10- -Wl,--version-script=$(top_srcdir)/libkmod/libkmod.sym
11+ -version-info $(LIBKMOD_CURRENT):$(LIBKMOD_REVISION):$(LIBKMOD_AGE)
12 libkmod_libkmod_la_DEPENDENCIES = \
13 shared/libshared.la \
14 ${top_srcdir}/libkmod/libkmod.sym
15@@ -91,8 +90,7 @@ libkmod_libkmod_la_LIBADD = \
16
17 noinst_LTLIBRARIES += libkmod/libkmod-internal.la
18 libkmod_libkmod_internal_la_SOURCES = $(libkmod_libkmod_la_SOURCES)
19-libkmod_libkmod_internal_la_LDFLAGS = $(AM_LDFLAGS) \
20- -Wl,--version-script=$(top_srcdir)/libkmod/libkmod.sym
21+libkmod_libkmod_internal_la_LDFLAGS = $(AM_LDFLAGS)
22 libkmod_libkmod_internal_la_DEPENDENCIES = $(libkmod_libkmod_la_DEPENDENCIES)
23 libkmod_libkmod_internal_la_LIBADD = $(libkmod_libkmod_la_LIBADD)
24
25diff --git a/libkmod/libkmod-module.c b/libkmod/libkmod-module.c
26index 889f264..6f0a285 100644
27--- a/libkmod/libkmod-module.c
28+++ b/libkmod/libkmod-module.c
29@@ -787,7 +787,11 @@ KMOD_EXPORT int kmod_module_remove_module(struct kmod_module *mod,
30 flags &= KMOD_REMOVE_FORCE;
31 flags |= KMOD_REMOVE_NOWAIT;
32
33+#if defined(__linux__)
34 err = delete_module(mod->name, flags);
35+#else
36+ err = -1;
37+#endif
38 if (err != 0) {
39 err = -errno;
40 ERR(mod->ctx, "could not remove '%s': %m\n", mod->name);
41@@ -879,7 +883,11 @@ KMOD_EXPORT int kmod_module_insert_module(struct kmod_module *mod,
42 }
43 size = kmod_file_get_size(mod->file);
44
45+#if defined(__linux__)
46 err = init_module(mem, size, args);
47+#else
48+ err = -1;
49+#endif
50 init_finished:
51 if (err < 0) {
52 err = -errno;
53diff --git a/libkmod/libkmod-signature.c b/libkmod/libkmod-signature.c
54index 429ffbd..17a3b9c 100644
55--- a/libkmod/libkmod-signature.c
56+++ b/libkmod/libkmod-signature.c
57@@ -17,7 +17,10 @@
58 * License along with this library; if not, see <http://www.gnu.org/licenses/>.
59 */
60
61+#if defined(__linux__)
62 #include <endian.h>
63+#endif
64+
65 #include <inttypes.h>
66 #include <stdio.h>
67 #include <stdlib.h>
68diff --git a/shared/macro.h b/shared/macro.h
69index 4fc5405..b5a2702 100644
70--- a/shared/macro.h
71+++ b/shared/macro.h
72@@ -53,6 +53,10 @@
73 #define CONCATENATE(x, y) XCONCATENATE(x, y)
74 #define UNIQ(x) CONCATENATE(x, __COUNTER__)
75
76+#if !defined(__linux__)
77+#define program_invocation_short_name getprogname()
78+#endif
79+
80 /* Temporaries for importing index handling */
81 #define NOFAIL(x) (x)
82 #define fatal(x...) do { } while (0)
83diff --git a/shared/missing.h b/shared/missing.h
84index 4c0d136..ad8ec0f 100644
85--- a/shared/missing.h
86+++ b/shared/missing.h
87@@ -45,6 +45,9 @@ static inline int finit_module(int fd, const char *uargs, int flags)
88 #endif
89
90 #if !HAVE_DECL_BE32TOH
91+
92+#if defined(__linux__)
93+
94 #include <endian.h>
95 #include <byteswap.h>
96 #if __BYTE_ORDER == __LITTLE_ENDIAN
97@@ -52,4 +55,16 @@ static inline int finit_module(int fd, const char *uargs, int flags)
98 #else
99 #define be32toh(x) (x)
100 #endif
101+
102+#elif defined(__APPLE__)
103+
104+#include <libkern/OSByteOrder.h>
105+#define be32toh(x) OSSwapBigToHostInt32(x)
106+
107+#else
108+
109+#error No be32toh known for platform
110+
111+#endif
112+
113 #endif
114diff --git a/shared/util.c b/shared/util.c
115index fd2028d..ecb0141 100644
116--- a/shared/util.c
117+++ b/shared/util.c
118@@ -367,7 +367,7 @@ char *path_make_absolute_cwd(const char *p)
119 if (path_is_absolute(p))
120 return strdup(p);
121
122- cwd = get_current_dir_name();
123+ cwd = getcwd(NULL, 0);
124 if (!cwd)
125 return NULL;
126
127--- a/shared/util.h 2018-01-31 18:10:59.000000000 +0100
128+++ b/shared/util.h 2020-12-28 19:48:21.000000000 +0100
129@@ -7,6 +7,9 @@
130 #include <stdio.h>
131 #include <sys/types.h>
132 #include <sys/stat.h>
133+#ifdef __APPLE__
134+#include <libgen.h>
135+#endif
136
137 #include <shared/macro.h>
138