diff --git a/.gitignore b/.gitignore index 8211894e77b2c70b5ea836d05d27bdffbd334453..80b17c24cb4bc82bb252a6b2cd5f2d851f949226 100644 --- a/.gitignore +++ b/.gitignore @@ -30,9 +30,3 @@ /aclocal.m4 /ltmain.sh /ylwrap - -# CMake files -/CMakeCache.txt -/CMakeFiles -/Makefile -/cmake_install.cmake diff --git a/lib/module.c b/lib/module.c index 109f16ad98142b5c726505cb45ba3c1190af458b..c57349b106f487886fbac9e2ee196190ec781d3c 100644 --- a/lib/module.c +++ b/lib/module.c @@ -121,25 +121,27 @@ int kr_module_load(struct kr_module *module, const char *name, const char *path) } /* Load all symbols. */ - module_api_cb *module_api = NULL; - auto_free char *module_prefix = kr_strcatdup(2, name, "_"); - *(void **) (&module_api) = load_symbol(module->lib, module_prefix, "api"); + auto_free char *module_prefix = kr_strcatdup(2, name, "_"); *(void **) (&module->init) = load_symbol(module->lib, module_prefix, "init"); *(void **) (&module->deinit) = load_symbol(module->lib, module_prefix, "deinit"); *(void **) (&module->config) = load_symbol(module->lib, module_prefix, "config"); *(void **) (&module->layer) = load_symbol(module->lib, module_prefix, "layer"); - /* Module initializer not found, attempt to load as Go shared library. */ - if (module_api == NULL) { - int ret = load_libgo(module, &module_api); - if (ret != 0) { - return ret; + /* API check for non-built-in libraries. */ + if (module->lib != RTLD_DEFAULT) { + module_api_cb *module_api = NULL; + *(void **) (&module_api) = load_symbol(module->lib, module_prefix, "api"); + if (module_api == NULL) { + int ret = load_libgo(module, &module_api); + if (ret != 0) { + return ret; + } } - } - /* Check module API version (if declared). */ - if (module_api && module_api() != KR_MODULE_API) { - return kr_error(ENOTSUP); + /* Check module API version (if declared). */ + if (module_api && module_api() != KR_MODULE_API) { + return kr_error(ENOTSUP); + } } /* Initialize module */ diff --git a/platform.mk b/platform.mk index 3720949e46580e8ff38b40b98b7fbe950a7549a8..58c2c8abf78473d72b7069feec3842f9f97297f8 100644 --- a/platform.mk +++ b/platform.mk @@ -90,7 +90,7 @@ endef # Find binary define find_bin ifeq ($$(strip $$($(1)_BIN)),) - HAS_$(1) := $(shell $(1) --version >/dev/null && echo yes || echo no) + HAS_$(1) := $(shell $(1) --version > /dev/null 2>&1 && echo yes || echo no) else HAS_$(1) := yes $(1) := $$($(1)_BIN) diff --git a/tests/test_integration.c b/tests/test_integration.c index 21d8201a0b5cf8547557600f4719d156fb6db42a..b2425b9bc8a5dffb23758b01e14c474f67bebe56 100644 --- a/tests/test_integration.c +++ b/tests/test_integration.c @@ -52,7 +52,6 @@ static PyObject* init(PyObject* self, PyObject* args) #define CACHE_SIZE 100*1024 mm_ctx_init(&global_mm); kr_context_init(&global_context, &global_mm); - kr_context_register(&global_context, "hints"); kr_context_register(&global_context, "iterate"); kr_context_register(&global_context, "itercache"); global_tmpdir = test_tmpdir_create(); diff --git a/tests/tests.mk b/tests/tests.mk index 299b5eed75484cfb10b691f15ebfa0e8f2abfbdd..d6ccc6ec674a4ac7c1ef482871347c38dfa40d91 100644 --- a/tests/tests.mk +++ b/tests/tests.mk @@ -42,9 +42,9 @@ $(eval $(call make_shared,_test_integration,tests)) # Preload mock library insert_libs := tests/libmock_calls$(LIBEXT):modules/hints/hints$(LIBEXT) ifeq ($(PLATFORM),Darwin) - preload_libs := @DYLD_FORCE_FLAT_NAMESPACE=1 DYLD_INSERT_LIBRARIES=$(insert_libs) + preload_libs := @DYLD_FORCE_FLAT_NAMESPACE=1 DYLD_INSERT_LIBRARIES="$(insert_libs)" else - preload_libs := @LD_PRELOAD=$(insert_libs) + preload_libs := @LD_PRELOAD="$(subst :, ,$(insert_libs))" endif # Targets