[Groonga-commit] groonga/groonga [master] Use dlfcn.h availability to determin plugin backend

Back to archive index

null+****@clear***** null+****@clear*****
2012年 4月 13日 (金) 17:19:27 JST


Kouhei Sutou	2012-04-13 17:19:27 +0900 (Fri, 13 Apr 2012)

  New Revision: 9ec737bf91b247dc444aef03966001ca648ed17c

  Log:
    Use dlfcn.h availability to determin plugin backend

  Modified files:
    build/ac_macros/check_headers.m4
    lib/plugin.c

  Modified: build/ac_macros/check_headers.m4 (+1 -0)
===================================================================
--- build/ac_macros/check_headers.m4    2012-04-13 17:11:38 +0900 (c3075b0)
+++ build/ac_macros/check_headers.m4    2012-04-13 17:19:27 +0900 (89a393a)
@@ -1,5 +1,6 @@
 # -*- autoconf -*-
 
+AC_CHECK_HEADERS(dlfcn.h)
 AC_CHECK_HEADERS(errno.h)
 AC_CHECK_HEADERS(execinfo.h)
 AC_CHECK_HEADERS(netdb.h)

  Modified: lib/plugin.c (+9 -9)
===================================================================
--- lib/plugin.c    2012-04-13 17:11:38 +0900 (062399e)
+++ lib/plugin.c    2012-04-13 17:19:27 +0900 (18b4cd5)
@@ -31,15 +31,7 @@ static grn_hash *grn_plugins = NULL;
 
 #define PATHLEN(filename) (strlen(filename) + 1)
 
-#ifdef WIN32
-#  define grn_dl_open(filename)      LoadLibrary(filename)
-#  define grn_dl_open_error_label()  "LoadLibrary"
-#  define grn_dl_close(dl)           (FreeLibrary(dl) != 0)
-#  define grn_dl_close_error_label() "FreeLibrary"
-#  define grn_dl_sym(dl, symbol)     ((void *)GetProcAddress(dl, symbol))
-#  define grn_dl_sym_error_label()   "GetProcAddress"
-#  define grn_dl_clear_error()
-#else
+#ifdef HAVE_DLFCN_H
 #  include <dlfcn.h>
 #  define grn_dl_open(filename)      dlopen(filename, RTLD_LAZY | RTLD_LOCAL)
 #  define grn_dl_open_error_label()  dlerror()
@@ -48,6 +40,14 @@ static grn_hash *grn_plugins = NULL;
 #  define grn_dl_sym(dl, symbol)     dlsym(dl, symbol)
 #  define grn_dl_sym_error_label()   dlerror()
 #  define grn_dl_clear_error()       dlerror()
+#else
+#  define grn_dl_open(filename)      LoadLibrary(filename)
+#  define grn_dl_open_error_label()  "LoadLibrary"
+#  define grn_dl_close(dl)           (FreeLibrary(dl) != 0)
+#  define grn_dl_close_error_label() "FreeLibrary"
+#  define grn_dl_sym(dl, symbol)     ((void *)GetProcAddress(dl, symbol))
+#  define grn_dl_sym_error_label()   "GetProcAddress"
+#  define grn_dl_clear_error()
 #endif
 
 grn_id




Groonga-commit メーリングリストの案内
Back to archive index