at 22.05-pre 138 lines 3.9 kB view raw
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