rbdc 0.9.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. checksums.yaml +4 -4
  2. data/dyncall/BUGS +1 -1
  3. data/dyncall/CMakeLists.txt +19 -7
  4. data/dyncall/ChangeLog +61 -20
  5. data/dyncall/LICENSE +1 -1
  6. data/dyncall/Makefile.generic +2 -0
  7. data/dyncall/ToDo +97 -29
  8. data/dyncall/autovar/README.txt +1 -0
  9. data/dyncall/autovar/autovar_ABI.h +4 -2
  10. data/dyncall/autovar/autovar_ARCH.h +9 -5
  11. data/dyncall/autovar/autovar_CC.h +3 -1
  12. data/dyncall/autovar/autovar_OS.h +2 -2
  13. data/dyncall/autovar/autovar_OSFAMILY.h +1 -1
  14. data/dyncall/configure +94 -38
  15. data/dyncall/dyncall/dyncall.3 +8 -4
  16. data/dyncall/dyncall/dyncall.h +1 -1
  17. data/dyncall/dyncall/dyncall_alloc.h +1 -1
  18. data/dyncall/dyncall/dyncall_api.c +3 -1
  19. data/dyncall/dyncall/dyncall_call.S +13 -5
  20. data/dyncall/dyncall/dyncall_call_arm32_arm.S +1 -2
  21. data/dyncall/dyncall/dyncall_call_arm32_arm.h +1 -1
  22. data/dyncall/dyncall/dyncall_call_arm32_arm_armhf.S +24 -26
  23. data/dyncall/dyncall/dyncall_call_arm32_arm_armhf.h +1 -1
  24. data/dyncall/dyncall/dyncall_call_arm32_thumb.h +1 -1
  25. data/dyncall/dyncall/dyncall_call_arm32_thumb_armhf.S +1 -1
  26. data/dyncall/dyncall/dyncall_call_arm32_thumb_gas.s +3 -7
  27. data/dyncall/dyncall/dyncall_call_arm64.S +2 -2
  28. data/dyncall/dyncall/dyncall_call_arm64.h +2 -2
  29. data/dyncall/dyncall/dyncall_call_mips.h +1 -1
  30. data/dyncall/dyncall/dyncall_call_mips_eabi.h +1 -1
  31. data/dyncall/dyncall/dyncall_call_mips_eabi_gas.s +16 -16
  32. data/dyncall/dyncall/dyncall_call_mips_gas.S +2 -2
  33. data/dyncall/dyncall/dyncall_call_mips_n32.h +5 -4
  34. data/dyncall/dyncall/dyncall_call_mips_n32_gas.s +4 -4
  35. data/dyncall/dyncall/dyncall_call_mips_n64.h +3 -3
  36. data/dyncall/dyncall/dyncall_call_mips_n64_gas.s +2 -2
  37. data/dyncall/dyncall/dyncall_call_mips_o32.h +4 -3
  38. data/dyncall/dyncall/dyncall_call_mips_o32_gas.s +1 -3
  39. data/dyncall/dyncall/dyncall_call_ppc32.S +1 -1
  40. data/dyncall/dyncall/dyncall_call_ppc32.h +1 -1
  41. data/dyncall/dyncall/dyncall_call_sparc.h +1 -1
  42. data/dyncall/dyncall/{dyncall_call_sparc.S → dyncall_call_sparc.s} +39 -44
  43. data/dyncall/dyncall/dyncall_call_sparc64.h +5 -5
  44. data/dyncall/dyncall/dyncall_call_sparc64.s +177 -0
  45. data/dyncall/dyncall/dyncall_call_x64.S +83 -86
  46. data/dyncall/dyncall/dyncall_call_x64.h +1 -1
  47. data/dyncall/dyncall/dyncall_call_x86.S +9 -9
  48. data/dyncall/dyncall/dyncall_call_x86.h +1 -1
  49. data/dyncall/dyncall/dyncall_call_x86_nasm.asm +5 -5
  50. data/dyncall/dyncall/dyncall_callf.c +18 -18
  51. data/dyncall/dyncall/dyncall_callf.h +1 -1
  52. data/dyncall/dyncall/dyncall_callvm.c +3 -3
  53. data/dyncall/dyncall/dyncall_callvm.h +1 -1
  54. data/dyncall/dyncall/dyncall_callvm_arm32_arm.c +25 -40
  55. data/dyncall/dyncall/dyncall_callvm_arm32_arm.h +1 -5
  56. data/dyncall/dyncall/dyncall_callvm_arm32_arm_armhf.c +25 -33
  57. data/dyncall/dyncall/dyncall_callvm_arm32_arm_armhf.h +1 -5
  58. data/dyncall/dyncall/dyncall_callvm_arm32_thumb.c +24 -36
  59. data/dyncall/dyncall/dyncall_callvm_arm32_thumb.h +1 -5
  60. data/dyncall/dyncall/dyncall_callvm_arm64.c +23 -27
  61. data/dyncall/dyncall/dyncall_callvm_arm64.h +2 -6
  62. data/dyncall/dyncall/dyncall_callvm_arm64_apple.c +23 -30
  63. data/dyncall/dyncall/dyncall_callvm_base.c +1 -1
  64. data/dyncall/dyncall/dyncall_callvm_mips.c +1 -1
  65. data/dyncall/dyncall/dyncall_callvm_mips.h +1 -1
  66. data/dyncall/dyncall/dyncall_callvm_mips_eabi.c +30 -27
  67. data/dyncall/dyncall/dyncall_callvm_mips_eabi.h +1 -5
  68. data/dyncall/dyncall/dyncall_callvm_mips_n32.c +24 -30
  69. data/dyncall/dyncall/{dyncall_call_sparc_v9.h → dyncall_callvm_mips_n32.h} +18 -8
  70. data/dyncall/dyncall/dyncall_callvm_mips_n64.c +23 -30
  71. data/dyncall/dyncall/dyncall_callvm_mips_n64.h +4 -6
  72. data/dyncall/dyncall/dyncall_callvm_mips_o32.c +31 -29
  73. data/dyncall/dyncall/dyncall_callvm_mips_o32.h +1 -3
  74. data/dyncall/dyncall/dyncall_callvm_ppc32.c +22 -20
  75. data/dyncall/dyncall/dyncall_callvm_ppc32.h +1 -3
  76. data/dyncall/dyncall/dyncall_callvm_ppc64.c +54 -15
  77. data/dyncall/dyncall/dyncall_callvm_ppc64.h +0 -2
  78. data/dyncall/dyncall/dyncall_callvm_sparc.c +34 -26
  79. data/dyncall/dyncall/dyncall_callvm_sparc.h +1 -3
  80. data/dyncall/dyncall/dyncall_callvm_sparc64.c +94 -150
  81. data/dyncall/dyncall/dyncall_callvm_sparc64.h +11 -17
  82. data/dyncall/dyncall/dyncall_callvm_x64.c +37 -36
  83. data/dyncall/dyncall/dyncall_callvm_x64.h +1 -4
  84. data/dyncall/dyncall/dyncall_callvm_x86.c +22 -63
  85. data/dyncall/dyncall/dyncall_callvm_x86.h +1 -17
  86. data/dyncall/dyncall/dyncall_config.h +1 -1
  87. data/dyncall/dyncall/dyncall_macros.h +28 -19
  88. data/dyncall/dyncall/dyncall_signature.h +1 -1
  89. data/dyncall/dyncall/dyncall_types.h +17 -18
  90. data/dyncall/dyncall/dyncall_utils.h +1 -1
  91. data/dyncall/dyncall/dyncall_value.h +28 -21
  92. data/dyncall/dyncall/dyncall_vector.c +1 -1
  93. data/dyncall/dyncall/dyncall_vector.h +1 -1
  94. data/dyncall/dyncall/gen-masm.sh +2 -2
  95. data/dyncall/dyncallback/CMakeLists.txt +1 -2
  96. data/dyncall/dyncallback/Makefile.generic +1 -1
  97. data/dyncall/dyncallback/dyncall_alloc_wx.c +1 -1
  98. data/dyncall/dyncallback/dyncall_alloc_wx.h +4 -3
  99. data/dyncall/dyncallback/dyncall_alloc_wx_malloc.c +8 -2
  100. data/dyncall/dyncallback/dyncall_alloc_wx_mmap.c +67 -4
  101. data/dyncall/dyncallback/dyncall_alloc_wx_win32.c +7 -2
  102. data/dyncall/dyncallback/dyncall_args.c +19 -15
  103. data/dyncall/dyncallback/dyncall_args.h +1 -1
  104. data/dyncall/dyncallback/{dyncall_args_arm32_arm.c → dyncall_args_arm32.c} +4 -4
  105. data/dyncall/dyncallback/{dyncall_args_arm32_arm.h → dyncall_args_arm32.h} +6 -6
  106. data/dyncall/dyncallback/dyncall_args_arm64.c +2 -2
  107. data/dyncall/dyncallback/dyncall_args_arm64_apple.c +2 -2
  108. data/dyncall/dyncallback/dyncall_args_mips.c +26 -21
  109. data/dyncall/dyncallback/dyncall_args_mips.h +18 -6
  110. data/dyncall/dyncallback/dyncall_args_mips64.c +81 -0
  111. data/dyncall/dyncallback/dyncall_args_mips_o32.c +104 -0
  112. data/dyncall/dyncallback/dyncall_args_ppc32.c +2 -2
  113. data/dyncall/dyncallback/dyncall_args_ppc32.h +1 -1
  114. data/dyncall/dyncallback/dyncall_args_ppc32_sysv.c +1 -1
  115. data/dyncall/dyncallback/dyncall_args_ppc64.c +24 -3
  116. data/dyncall/dyncallback/dyncall_args_sparc32.c +41 -15
  117. data/dyncall/dyncallback/dyncall_args_sparc32.h +2 -2
  118. data/dyncall/dyncallback/dyncall_args_sparc64.c +28 -15
  119. data/dyncall/dyncallback/dyncall_args_sparc64.h +7 -3
  120. data/dyncall/dyncallback/dyncall_args_x64.c +1 -1
  121. data/dyncall/dyncallback/dyncall_args_x64.h +1 -1
  122. data/dyncall/dyncallback/dyncall_args_x86.c +1 -1
  123. data/dyncall/dyncallback/dyncall_args_x86.h +1 -1
  124. data/dyncall/dyncallback/dyncall_callback.c +10 -12
  125. data/dyncall/dyncallback/dyncall_callback.h +2 -4
  126. data/dyncall/dyncallback/dyncall_callback_arch.S +12 -2
  127. data/dyncall/dyncallback/{dyncall_callback_arm32_arm.c → dyncall_callback_arm32.c} +25 -10
  128. data/dyncall/dyncallback/dyncall_callback_arm32_arm_apple.s +7 -7
  129. data/dyncall/dyncallback/dyncall_callback_arm32_arm_gas.S +9 -9
  130. data/dyncall/dyncallback/dyncall_callback_arm32_thumb_apple.S +1 -1
  131. data/dyncall/dyncallback/dyncall_callback_arm32_thumb_gas.S +1 -1
  132. data/dyncall/dyncallback/dyncall_callback_arm64.S +2 -2
  133. data/dyncall/dyncallback/dyncall_callback_arm64.c +20 -14
  134. data/dyncall/dyncallback/dyncall_callback_mips.c +26 -9
  135. data/dyncall/dyncallback/dyncall_callback_mips_eabi_gas.s +99 -0
  136. data/dyncall/dyncallback/{dyncall_args_arm32_thumb.h → dyncall_callback_mips_gas.S} +14 -9
  137. data/dyncall/dyncallback/{dyncall_callback_arm32_thumb.c → dyncall_callback_mips_n32_gas.s} +12 -7
  138. data/dyncall/dyncallback/dyncall_callback_mips_n64_gas.s +98 -0
  139. data/dyncall/dyncallback/dyncall_callback_mips_o32_gas.s +100 -0
  140. data/dyncall/dyncallback/dyncall_callback_ppc32.S +54 -54
  141. data/dyncall/dyncallback/dyncall_callback_ppc32.c +23 -5
  142. data/dyncall/dyncallback/dyncall_callback_ppc32_apple.s +92 -117
  143. data/dyncall/dyncallback/dyncall_callback_ppc64.S +2 -2
  144. data/dyncall/dyncallback/dyncall_callback_ppc64.c +23 -5
  145. data/dyncall/dyncallback/dyncall_callback_sparc32.c +25 -7
  146. data/dyncall/dyncallback/dyncall_callback_sparc32.s +55 -4
  147. data/dyncall/dyncallback/dyncall_callback_sparc64.c +25 -7
  148. data/dyncall/dyncallback/dyncall_callback_sparc64.s +89 -5
  149. data/dyncall/dyncallback/dyncall_callback_x64.S +8 -8
  150. data/dyncall/dyncallback/dyncall_callback_x64.c +19 -6
  151. data/dyncall/dyncallback/dyncall_callback_x86.S +29 -25
  152. data/dyncall/dyncallback/dyncall_callback_x86.c +24 -11
  153. data/dyncall/dyncallback/dyncall_thunk.c +6 -6
  154. data/dyncall/dyncallback/dyncall_thunk.h +9 -7
  155. data/dyncall/dyncallback/{dyncall_thunk_arm32_arm.c → dyncall_thunk_arm32.c} +5 -3
  156. data/dyncall/dyncallback/{dyncall_thunk_arm32_arm.h → dyncall_thunk_arm32.h} +7 -7
  157. data/dyncall/dyncallback/dyncall_thunk_arm64.c +2 -2
  158. data/dyncall/dyncallback/dyncall_thunk_arm64.h +8 -13
  159. data/dyncall/dyncallback/dyncall_thunk_mips.c +16 -20
  160. data/dyncall/dyncallback/dyncall_thunk_mips.h +4 -2
  161. data/dyncall/dyncallback/dyncall_thunk_mips64.c +103 -0
  162. data/dyncall/dyncallback/{dyncall_callback_arm32_thumb.h → dyncall_thunk_mips64.h} +15 -8
  163. data/dyncall/dyncallback/dyncall_thunk_ppc32.c +4 -4
  164. data/dyncall/dyncallback/dyncall_thunk_ppc32.h +1 -1
  165. data/dyncall/dyncallback/dyncall_thunk_ppc32_sysv.c +9 -9
  166. data/dyncall/dyncallback/dyncall_thunk_ppc64.c +2 -2
  167. data/dyncall/dyncallback/dyncall_thunk_sparc32.c +19 -2
  168. data/dyncall/dyncallback/dyncall_thunk_sparc32.h +5 -4
  169. data/dyncall/dyncallback/dyncall_thunk_sparc64.c +42 -2
  170. data/dyncall/dyncallback/dyncall_thunk_sparc64.h +5 -5
  171. data/dyncall/dyncallback/dyncall_thunk_x64.c +1 -1
  172. data/dyncall/dyncallback/dyncall_thunk_x64.h +2 -2
  173. data/dyncall/dyncallback/dyncall_thunk_x86.c +1 -1
  174. data/dyncall/dyncallback/dyncall_thunk_x86.h +2 -2
  175. data/dyncall/dyncallback/dyncallback.3 +16 -11
  176. data/dyncall/dynload/dynload.3 +63 -8
  177. data/dyncall/dynload/dynload.c +2 -8
  178. data/dyncall/dynload/dynload.h +9 -5
  179. data/dyncall/dynload/dynload_alloc.h +1 -1
  180. data/dyncall/dynload/dynload_syms.c +1 -3
  181. data/dyncall/dynload/dynload_syms_elf.c +19 -11
  182. data/dyncall/dynload/dynload_syms_mach-o.c +151 -75
  183. data/dyncall/dynload/dynload_syms_pe.c +24 -24
  184. data/dyncall/dynload/dynload_unix.c +156 -13
  185. data/dyncall/dynload/dynload_windows.c +15 -11
  186. data/dyncall/portasm/portasm-arm.S +1 -1
  187. data/dyncall/portasm/portasm-ppc.S +1 -1
  188. data/dyncall/portasm/{portasm-x64-att.S → portasm-x64.S} +7 -4
  189. data/dyncall/portasm/portasm-x86.S +4 -2
  190. data/{dyncall-bindings/ruby/rbdc/extconf.rb → extconf.rb} +4 -4
  191. data/{dyncall-bindings/ruby/rbdc/rbdc.c → rbdc.c} +5 -5
  192. metadata +24 -48
  193. data/dyncall/Makefile.M +0 -15
  194. data/dyncall/buildsys/dynmake/Makefile.base.M +0 -82
  195. data/dyncall/buildsys/dynmake/dynmake.bat +0 -2
  196. data/dyncall/buildsys/dynmake/dynmake.sh +0 -4
  197. data/dyncall/dynMakefile +0 -4
  198. data/dyncall/dyncall/Makefile.M +0 -10
  199. data/dyncall/dyncall/TODO +0 -9
  200. data/dyncall/dyncall/dynMakefile +0 -4
  201. data/dyncall/dyncall/dyncall_call_sparc64.S +0 -362
  202. data/dyncall/dyncall/dyncall_call_sparc_v9.S +0 -222
  203. data/dyncall/dyncall/dyncall_call_x64-att.S +0 -147
  204. data/dyncall/dyncall/dyncall_callvm_sparc_v9.c +0 -182
  205. data/dyncall/dyncall/dyncall_callvm_sparc_v9.h +0 -46
  206. data/dyncall/dyncallback/Makefile.M +0 -10
  207. data/dyncall/dyncallback/README.txt +0 -9
  208. data/dyncall/dyncallback/TODO +0 -4
  209. data/dyncall/dyncallback/dynMakefile +0 -4
  210. data/dyncall/dyncallback/dyncall_args_arm32_thumb.c +0 -30
  211. data/dyncall/dyncallback/dyncall_callback_arm32_arm.h +0 -46
  212. data/dyncall/dyncallback/dyncall_callback_mips.h +0 -43
  213. data/dyncall/dyncallback/dyncall_callback_ppc32.h +0 -43
  214. data/dyncall/dyncallback/dyncall_callback_ppc64.h +0 -56
  215. data/dyncall/dyncallback/dyncall_callback_sparc32.h +0 -44
  216. data/dyncall/dyncallback/dyncall_callback_x64.h +0 -45
  217. data/dyncall/dyncallback/dyncall_callback_x86.h +0 -50
  218. data/dyncall/dyncallback/dyncall_thunk_arm32_thumb.c +0 -30
  219. data/dyncall/dyncallback/dyncall_thunk_arm32_thumb.h +0 -36
  220. data/dyncall/dynload/Makefile.M +0 -10
  221. data/dyncall/dynload/TODO +0 -20
  222. data/dyncall/dynload/dynMakefile +0 -4
  223. data/dyncall/dynload/dynload_darwin.c +0 -90
@@ -6,7 +6,7 @@
6
6
  Description:
7
7
  License:
8
8
 
9
- Copyright (c) 2007-2015 Daniel Adler <dadler@uni-goettingen.de>,
9
+ Copyright (c) 2007-2018 Daniel Adler <dadler@uni-goettingen.de>,
10
10
  Tassilo Philipp <tphilipp@potion-studios.com>
11
11
 
12
12
  Permission to use, copy, modify, and distribute this software for any
@@ -24,7 +24,6 @@
24
24
  */
25
25
 
26
26
 
27
-
28
27
  /*
29
28
 
30
29
  dynload_unix.c
@@ -35,31 +34,175 @@
35
34
 
36
35
 
37
36
  #include "dynload.h"
37
+ #include "../autovar/autovar_OS.h"
38
+
39
+ #include <string.h>
38
40
 
41
+ #if defined(__GLIBC__) /* to access dlinfo */
42
+ # define _GNU_SOURCE
43
+ # define __USE_GNU
44
+ #endif
39
45
  #include <dlfcn.h>
40
46
 
41
47
 
42
48
  DLLib* dlLoadLibrary(const char* libPath)
43
49
  {
44
- return (DLLib*)dlopen(libPath,RTLD_NOW|RTLD_GLOBAL);
50
+ return (DLLib*)dlopen(libPath, RTLD_NOW|RTLD_GLOBAL); //@@@ should use RTLD_LAZY, maybe?
51
+ }
52
+
53
+
54
+ void* dlFindSymbol(DLLib* pLib, const char* pSymbolName)
55
+ {
56
+ return dlsym((void*)pLib, pSymbolName);
57
+ }
58
+
59
+
60
+ void dlFreeLibrary(DLLib* pLib)
61
+ {
62
+ /* Check for NULL for cross-platform consistency. *BSD seems to do that in
63
+ dlclose, Linux does not. POSIX states "if handle does not refer to an open
64
+ object, dlclose() returns a non-zero value", which unfortunately sounds
65
+ like it's not explicitly specified. */
66
+ if(pLib)
67
+ dlclose((void*)pLib);
68
+ }
69
+
70
+
71
+
72
+ /* for dlopen-based dlGetLibraryPath impls below, prefer RTLD_NOLOAD */
73
+ /* that merely checks lib names */
74
+ #if defined(RTLD_NOLOAD)
75
+ # define RTLD_LIGHTEST RTLD_NOLOAD
76
+ #else
77
+ # define RTLD_LIGHTEST RTLD_LAZY
78
+ #endif
79
+
80
+
81
+ /* code for dlGetLibraryPath is platform specific - if dlinfo() exists use */
82
+ /* that: check for RTLD_DI_LINKMAP (#define for dlinfo()), or if GNU C Lib */
83
+ /* is used (where RTLD_DI_LINKMAP is an enum), or by OS (dlinfo comes from */
84
+ /* Solaris), etc. */
85
+ #if defined(RTLD_DI_LINKMAP) || defined(OS_SunOS) || defined(__GLIBC__) /* @@@ dlinfo() was introduced in glibc 2.3.3 (in 2003), somehow check for that, also */
86
+
87
+ #include <link.h>
88
+
89
+ int dlGetLibraryPath(DLLib* pLib, char* sOut, int bufSize)
90
+ {
91
+ struct link_map* p;
92
+ int l = -1;
93
+ if(dlinfo(pLib, RTLD_DI_LINKMAP, &p) == 0) {
94
+ l = strlen(p->l_name);
95
+ if(l < bufSize) /* l+'\0' <= bufSize */
96
+ strcpy(sOut, p->l_name);
97
+ }
98
+ return l+1; /* strlen + '\0' */
45
99
  }
46
100
 
47
101
 
48
- void* dlFindSymbol(DLLib* libHandle, const char* symbol)
102
+ /* specific implementation needed on Darwin -----> */
103
+ #elif defined(OS_Darwin)
104
+
105
+ #include <stdint.h>
106
+ #include <mach-o/dyld.h>
107
+
108
+ int dlGetLibraryPath(DLLib* pLib, char* sOut, int bufSize)
49
109
  {
50
- return dlsym((void*)libHandle, symbol);
110
+ uint32_t i;
111
+ int l = -1;
112
+
113
+ /*if(pLib == RTLD_DEFAULT)
114
+ return NULL; @@@ return exec's path */
115
+
116
+ /* Darwin's code doesn't come with (non-standard) dlinfo(), so use dyld(1) */
117
+ /* code. There doesn't seem to be a direct way to query the library path, */
118
+ /* so "double-load" temporarily all already loaded images (just increases */
119
+ /* ref count) and compare handles until we found ours. Return the name. */
120
+ for(i=_dyld_image_count(); i>0;) /* iterate libs from end, more likely ours */
121
+ {
122
+ const char* libPath = _dyld_get_image_name(--i);
123
+ void* lib = dlopen(libPath, RTLD_LIGHTEST);
124
+ if(lib) {
125
+ dlclose(lib);
126
+ /* compare handle pointers' high bits (in low 2 bits some flags might */
127
+ /* be stored - should be safe b/c address needs alignment, anywas) */
128
+ if(((intptr_t)pLib ^ (intptr_t)lib) < 4) {
129
+ l = strlen(libPath);
130
+ if(l < bufSize) /* l+'\0' <= bufSize */
131
+ strcpy(sOut, libPath);
132
+ break;
133
+ }
134
+ }
135
+ }
136
+
137
+ return l+1; /* strlen + '\0' */
51
138
  }
52
139
 
53
140
 
54
- void dlFreeLibrary(DLLib* libHandle)
141
+ /* OpenBSD >= 3.7 has dl_iterate_phdr(), use it if not explicitly requesting */
142
+ /* to use dladdr()-based guessing (set by configure) -----> */
143
+ #elif defined(OS_OpenBSD) && !defined(DL_DLADDR_TO_LIBPATH)
144
+
145
+ #include <sys/types.h>
146
+ #include <link.h>
147
+
148
+ typedef struct {
149
+ DLLib* pLib;
150
+ char* sOut;
151
+ int bufSize;
152
+ } iter_phdr_data;
153
+
154
+ static int iter_phdr_cb(struct dl_phdr_info* info, size_t size, void* data)
55
155
  {
156
+ int l = -1;
157
+ iter_phdr_data* d = (iter_phdr_data*)data;
158
+ /* unable to relate info->dlpi_addr directly to our dlopen handle, let's */
159
+ /* do what we do on macOS above, re-dlopen the already loaded lib (just */
160
+ /* increases ref count) and compare handles. */
161
+ void* lib = dlopen(info->dlpi_name, RTLD_LIGHTEST);
162
+ if(lib) {
163
+ dlclose(lib);
164
+ if(lib == (void*)d->pLib) {
165
+ l = strlen(info->dlpi_name);
166
+ if(l < d->bufSize) /* l+'\0' <= bufSize */
167
+ strcpy(d->sOut, info->dlpi_name);
168
+ }
169
+ }
170
+ return l+1; /* strlen + '\0'; is 0 if lib not found, which continues iter */
171
+ }
56
172
 
57
- // Check for NULL for cross-platform consistency. *BSD seems
58
- // to do that in dlclose, Linux does not. POSIX states "if handle
59
- // does not refer to an open object, dlclose() returns a non-zero
60
- // value", which unfortunately sounds like it's not explicitly
61
- // specified.
62
- if(libHandle)
63
- dlclose((void*)libHandle);
173
+ int dlGetLibraryPath(DLLib* pLib, char* sOut, int bufSize)
174
+ {
175
+ iter_phdr_data d = { pLib, sOut, bufSize };
176
+ return dl_iterate_phdr(iter_phdr_cb, &d);
64
177
  }
65
178
 
179
+
180
+ /* fallback to dladdr() hack */
181
+ #else
182
+
183
+ /* if nothing else is available, fall back to guessing using dladdr() - this */
184
+ /* might not always work, as it's trying to getit via the _fini() symbol, */
185
+ /* which is usually defined in ELF files, but not guaranteed */
186
+
187
+ /* @@@Note: On some platforms this might be improved, e.g. on BeOS we have */
188
+ /* lt_dlgetinfo, which requires iterating over ltdl stuff, but was unable */
189
+ /* to get that to work (would also introduce a link dependency on libltdl) */
190
+
191
+ int dlGetLibraryPath(DLLib* pLib, char* sOut, int bufSize)
192
+ {
193
+ /* cross fingers that shared object is standard ELF and look for _fini */
194
+ int l = -1;
195
+ void* s = dlsym((void*)pLib, "_fini");
196
+ if(s) {
197
+ Dl_info i;
198
+ if(dladdr(s, &i) != 0) {
199
+ l = strlen(i.dli_fname);
200
+ if(l < bufSize) /* l+'\0' <= bufSize */
201
+ strcpy(sOut, i.dli_fname);
202
+ }
203
+ }
204
+ return l+1; /* strlen + '\0' */
205
+ }
206
+
207
+ #endif
208
+
@@ -6,7 +6,7 @@
6
6
  Description:
7
7
  License:
8
8
 
9
- Copyright (c) 2007-2015 Daniel Adler <dadler@uni-goettingen.de>,
9
+ Copyright (c) 2007-2018 Daniel Adler <dadler@uni-goettingen.de>,
10
10
  Tassilo Philipp <tphilipp@potion-studios.com>
11
11
 
12
12
  Permission to use, copy, modify, and distribute this software for any
@@ -38,23 +38,27 @@
38
38
 
39
39
  #include <windows.h>
40
40
 
41
+
41
42
  DLLib* dlLoadLibrary(const char* libPath)
42
43
  {
43
- if (libPath != NULL) {
44
- return (DLLib*) LoadLibraryA(libPath);
45
- /*return (DLLib*) LoadLibraryA(libPath, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);*/
46
- } else {
47
- return (DLLib*) GetModuleHandle(NULL);
48
- }
44
+ return (DLLib*)(libPath != NULL ? LoadLibraryA(libPath) : GetModuleHandle(NULL));
49
45
  }
50
46
 
51
- void* dlFindSymbol(DLLib* libHandle, const char* symbol)
47
+
48
+ void* dlFindSymbol(DLLib* pLib, const char* pSymbolName)
52
49
  {
53
- return (void*) GetProcAddress( (HINSTANCE)libHandle, symbol);
50
+ return (void*)GetProcAddress((HINSTANCE)pLib, pSymbolName);
54
51
  }
55
52
 
56
- void dlFreeLibrary(DLLib* libHandle)
53
+
54
+ void dlFreeLibrary(DLLib* pLib)
55
+ {
56
+ FreeLibrary((HINSTANCE)pLib);
57
+ }
58
+
59
+
60
+ int dlGetLibraryPath(DLLib* pLib, char* sOut, int bufSize)
57
61
  {
58
- FreeLibrary( (HINSTANCE)libHandle );
62
+ return GetModuleFileNameA((HMODULE)pLib, sOut, bufSize)+1; /* strlen + '\0' */
59
63
  }
60
64
 
@@ -6,7 +6,7 @@
6
6
  Description:
7
7
  License:
8
8
 
9
- Copyright (c) 2011-2015 Daniel Adler <dadler@uni-goettingen.de>,
9
+ Copyright (c) 2011-2018 Daniel Adler <dadler@uni-goettingen.de>,
10
10
  Tassilo Philipp <tphilipp@potion-studios.com>
11
11
 
12
12
  Permission to use, copy, modify, and distribute this software for any
@@ -6,7 +6,7 @@
6
6
  Description: Portable Assembler Macros for ppc
7
7
  License:
8
8
 
9
- Copyright (c) 2011-2015 Daniel Adler <dadler@uni-goettingen.de>
9
+ Copyright (c) 2011-2018 Daniel Adler <dadler@uni-goettingen.de>
10
10
 
11
11
  Permission to use, copy, modify, and distribute this software for any
12
12
  purpose with or without fee is hereby granted, provided that the above
@@ -2,11 +2,11 @@
2
2
 
3
3
  Package: dyncall
4
4
  Library: portasm
5
- File: portasm/portasm-x64-att.S
5
+ File: portasm/portasm-x64.S
6
6
  Description: Portable Assembler Macros for X64
7
7
  License:
8
8
 
9
- Copyright (c) 2011-2015 Daniel Adler <dadler@uni-goettingen.de>
9
+ Copyright (c) 2011-2018 Daniel Adler <dadler@uni-goettingen.de>
10
10
 
11
11
  Permission to use, copy, modify, and distribute this software for any
12
12
  purpose with or without fee is hereby granted, provided that the above
@@ -69,12 +69,14 @@
69
69
  # define JNE(X) jne X
70
70
  # define CMP(A,B) cmp B,A
71
71
  # define LOCAL(X) X
72
+ /* @@@ check if masm support wanted/needed */
73
+ # define SECTION_NOTE_NXSTACK
72
74
  #else
73
75
  /* GNU/SunPro Assembler AT&T Syntax */
74
76
  .text
75
77
  # define BEGIN_ASM
76
78
  # define END_ASM
77
- # include "../autovar/autovar_OS.h"
79
+ # include "../autovar/autovar_ABI.h"
78
80
  # if defined (OS_Darwin)
79
81
  # define CSYM(X) _##X
80
82
  # else
@@ -150,7 +152,8 @@
150
152
  # define JNE(X) jne X
151
153
  # define FLDS(X) flds X
152
154
  # define FLDL(X) fldl X
153
- # define SET(K,V) .set K,V
155
+ /* not available on some platforms, e.g. old solaris, so use K=V syntax # define SET(K,V) .set K,V */
156
+ # define SET(K,V) K = V
154
157
  # define LOCAL(X) .X
155
158
  #endif
156
159
 
@@ -6,7 +6,7 @@
6
6
  Description: Portable Assembler Macros for x86
7
7
  License:
8
8
 
9
- Copyright (c) 2011-2015 Daniel Adler <dadler@uni-goettingen.de>
9
+ Copyright (c) 2011-2018 Daniel Adler <dadler@uni-goettingen.de>
10
10
 
11
11
  Permission to use, copy, modify, and distribute this software for any
12
12
  purpose with or without fee is hereby granted, provided that the above
@@ -62,12 +62,14 @@
62
62
  # define FLDS(OP) fld OP
63
63
  # define FLDL(OP) fld OP
64
64
  # define LOCAL(NAME) NAME
65
+ /* @@@ check if masm support wanted/needed */
66
+ # define SECTION_NOTE_NXSTACK
65
67
  #else
66
68
  /* GNU/SunPro Assembler AT&T Syntax */
67
69
  .text
68
70
  # define BEGIN_ASM
69
71
  # define END_ASM
70
- # include "../autovar/autovar_OS.h"
72
+ # include "../autovar/autovar_ABI.h"
71
73
  # if defined(OS_Win32) || defined(OS_Cygwin) || defined(OS_MinGW) || defined(OS_Darwin) || defined(OS_Minix)
72
74
  # define CSYM(X) _##X
73
75
  # else
@@ -1,7 +1,7 @@
1
1
  #//////////////////////////////////////////////////////////////////////
2
2
  #
3
3
  # extconf.rb
4
- # Copyright (c) 2007-2015 Daniel Adler <dadler@uni-goettingen.de>,
4
+ # Copyright (c) 2007-2018 Daniel Adler <dadler@uni-goettingen.de>,
5
5
  # Tassilo Philipp <tphilipp@potion-studios.com>
6
6
  #
7
7
  # Permission to use, copy, modify, and distribute this software for any
@@ -26,16 +26,16 @@
26
26
  require 'mkmf'
27
27
 
28
28
  dir_config 'rbdc'
29
- base_dir = '../../../dyncall/'
29
+ base_dir = 'dyncall/'
30
30
 
31
- $CFLAGS << ' -I../../../dyncall/dyncall '
31
+ $CFLAGS << ' -Idyncall/dyncall '
32
32
 
33
33
  # Build dyncall libs.
34
34
  puts 'Building dyncall libraries:'
35
35
  Dir.chdir(base_dir) do
36
36
  cmd = case
37
37
  when RUBY_PLATFORM =~ /mswin/ then 'configure.bat && nmake /f Nmakefile'
38
- else './configure && env CFLAGS="-fPIC" make'
38
+ else './configure && make'
39
39
  end
40
40
  puts cmd
41
41
  raise "'#{cmd}' failed" unless system(cmd)
@@ -1,7 +1,7 @@
1
1
  /*
2
2
 
3
3
  rbdc.c
4
- Copyright (c) 2007-2015 Daniel Adler <dadler@uni-goettingen.de>,
4
+ Copyright (c) 2007-2018 Daniel Adler <dadler@uni-goettingen.de>,
5
5
  Tassilo Philipp <tphilipp@potion-studios.com>
6
6
 
7
7
  Permission to use, copy, modify, and distribute this software for any
@@ -22,10 +22,10 @@
22
22
 
23
23
 
24
24
  #include <ruby.h>
25
- #include "../../../dyncall/dyncall/dyncall.h"
26
- #include "../../../dyncall/dyncallback/dyncall_callback.h"
27
- #include "../../../dyncall/dynload/dynload.h"
28
- #include "../../../dyncall/dyncall/dyncall_signature.h"
25
+ #include "dyncall/dyncall/dyncall.h"
26
+ #include "dyncall/dyncallback/dyncall_callback.h"
27
+ #include "dyncall/dynload/dynload.h"
28
+ #include "dyncall/dyncall/dyncall_signature.h"
29
29
 
30
30
  /* Our ruby module and its classes. */
31
31
  static VALUE rb_dcModule;
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbdc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tassilo Philipp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-31 00:00:00.000000000 Z
11
+ date: 2018-04-24 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Ruby interface to dyncall, allowing programmers to call C functions in
14
14
  shared libraries from ruby without writing any glue code at all (e.g. "l.load('/usr/lib/libm.so');
@@ -16,17 +16,14 @@ description: Ruby interface to dyncall, allowing programmers to call C functions
16
16
  email: tphilipp@potion-studios.com
17
17
  executables: []
18
18
  extensions:
19
- - dyncall-bindings/ruby/rbdc/extconf.rb
19
+ - extconf.rb
20
20
  extra_rdoc_files: []
21
21
  files:
22
- - dyncall-bindings/ruby/rbdc/extconf.rb
23
- - dyncall-bindings/ruby/rbdc/rbdc.c
24
22
  - dyncall/AUTHORS
25
23
  - dyncall/BUGS
26
24
  - dyncall/CMakeLists.txt
27
25
  - dyncall/ChangeLog
28
26
  - dyncall/LICENSE
29
- - dyncall/Makefile.M
30
27
  - dyncall/Makefile.embedded
31
28
  - dyncall/Makefile.generic
32
29
  - dyncall/Nmakefile
@@ -43,9 +40,6 @@ files:
43
40
  - dyncall/buildsys/cmake/Modules/FindDynCallback.cmake
44
41
  - dyncall/buildsys/cmake/Modules/FindDynLoad.cmake
45
42
  - dyncall/buildsys/cmake/Modules/UseLATEX.cmake
46
- - dyncall/buildsys/dynmake/Makefile.base.M
47
- - dyncall/buildsys/dynmake/dynmake.bat
48
- - dyncall/buildsys/dynmake/dynmake.sh
49
43
  - dyncall/buildsys/lua/Makefile
50
44
  - dyncall/buildsys/lua/README.txt
51
45
  - dyncall/buildsys/lua/bootstrap.sh
@@ -76,17 +70,13 @@ files:
76
70
  - dyncall/configure
77
71
  - dyncall/configure.bat
78
72
  - dyncall/configure.rc
79
- - dyncall/dynMakefile
80
73
  - dyncall/dyncall/CMakeLists.txt
81
74
  - dyncall/dyncall/DynCallConfig.cmake
82
- - dyncall/dyncall/Makefile.M
83
75
  - dyncall/dyncall/Makefile.embedded
84
76
  - dyncall/dyncall/Makefile.generic
85
77
  - dyncall/dyncall/Nmakefile
86
78
  - dyncall/dyncall/README-Developer.txt
87
79
  - dyncall/dyncall/README.txt
88
- - dyncall/dyncall/TODO
89
- - dyncall/dyncall/dynMakefile
90
80
  - dyncall/dyncall/dyncall.3
91
81
  - dyncall/dyncall/dyncall.h
92
82
  - dyncall/dyncall/dyncall_alloc.h
@@ -116,13 +106,10 @@ files:
116
106
  - dyncall/dyncall/dyncall_call_ppc32.h
117
107
  - dyncall/dyncall/dyncall_call_ppc64.S
118
108
  - dyncall/dyncall/dyncall_call_ppc64.h
119
- - dyncall/dyncall/dyncall_call_sparc.S
120
109
  - dyncall/dyncall/dyncall_call_sparc.h
121
- - dyncall/dyncall/dyncall_call_sparc64.S
110
+ - dyncall/dyncall/dyncall_call_sparc.s
122
111
  - dyncall/dyncall/dyncall_call_sparc64.h
123
- - dyncall/dyncall/dyncall_call_sparc_v9.S
124
- - dyncall/dyncall/dyncall_call_sparc_v9.h
125
- - dyncall/dyncall/dyncall_call_x64-att.S
112
+ - dyncall/dyncall/dyncall_call_sparc64.s
126
113
  - dyncall/dyncall/dyncall_call_x64.S
127
114
  - dyncall/dyncall/dyncall_call_x64.h
128
115
  - dyncall/dyncall/dyncall_call_x64_generic_masm.asm
@@ -150,6 +137,7 @@ files:
150
137
  - dyncall/dyncall/dyncall_callvm_mips_eabi.c
151
138
  - dyncall/dyncall/dyncall_callvm_mips_eabi.h
152
139
  - dyncall/dyncall/dyncall_callvm_mips_n32.c
140
+ - dyncall/dyncall/dyncall_callvm_mips_n32.h
153
141
  - dyncall/dyncall/dyncall_callvm_mips_n64.c
154
142
  - dyncall/dyncall/dyncall_callvm_mips_n64.h
155
143
  - dyncall/dyncall/dyncall_callvm_mips_o32.c
@@ -162,8 +150,6 @@ files:
162
150
  - dyncall/dyncall/dyncall_callvm_sparc.h
163
151
  - dyncall/dyncall/dyncall_callvm_sparc64.c
164
152
  - dyncall/dyncall/dyncall_callvm_sparc64.h
165
- - dyncall/dyncall/dyncall_callvm_sparc_v9.c
166
- - dyncall/dyncall/dyncall_callvm_sparc_v9.h
167
153
  - dyncall/dyncall/dyncall_callvm_x64.c
168
154
  - dyncall/dyncall/dyncall_callvm_x64.h
169
155
  - dyncall/dyncall/dyncall_callvm_x86.c
@@ -182,13 +168,9 @@ files:
182
168
  - dyncall/dyncall/mkfile
183
169
  - dyncall/dyncallback/CMakeLists.txt
184
170
  - dyncall/dyncallback/DynCallbackConfig.cmake
185
- - dyncall/dyncallback/Makefile.M
186
171
  - dyncall/dyncallback/Makefile.embedded
187
172
  - dyncall/dyncallback/Makefile.generic
188
173
  - dyncall/dyncallback/Nmakefile
189
- - dyncall/dyncallback/README.txt
190
- - dyncall/dyncallback/TODO
191
- - dyncall/dyncallback/dynMakefile
192
174
  - dyncall/dyncallback/dyncall_alloc_wx.c
193
175
  - dyncall/dyncallback/dyncall_alloc_wx.h
194
176
  - dyncall/dyncallback/dyncall_alloc_wx_malloc.c
@@ -196,14 +178,14 @@ files:
196
178
  - dyncall/dyncallback/dyncall_alloc_wx_win32.c
197
179
  - dyncall/dyncallback/dyncall_args.c
198
180
  - dyncall/dyncallback/dyncall_args.h
199
- - dyncall/dyncallback/dyncall_args_arm32_arm.c
200
- - dyncall/dyncallback/dyncall_args_arm32_arm.h
201
- - dyncall/dyncallback/dyncall_args_arm32_thumb.c
202
- - dyncall/dyncallback/dyncall_args_arm32_thumb.h
181
+ - dyncall/dyncallback/dyncall_args_arm32.c
182
+ - dyncall/dyncallback/dyncall_args_arm32.h
203
183
  - dyncall/dyncallback/dyncall_args_arm64.c
204
184
  - dyncall/dyncallback/dyncall_args_arm64_apple.c
205
185
  - dyncall/dyncallback/dyncall_args_mips.c
206
186
  - dyncall/dyncallback/dyncall_args_mips.h
187
+ - dyncall/dyncallback/dyncall_args_mips64.c
188
+ - dyncall/dyncallback/dyncall_args_mips_o32.c
207
189
  - dyncall/dyncallback/dyncall_args_ppc32.c
208
190
  - dyncall/dyncallback/dyncall_args_ppc32.h
209
191
  - dyncall/dyncallback/dyncall_args_ppc32_sysv.c
@@ -220,49 +202,45 @@ files:
220
202
  - dyncall/dyncallback/dyncall_callback.c
221
203
  - dyncall/dyncallback/dyncall_callback.h
222
204
  - dyncall/dyncallback/dyncall_callback_arch.S
223
- - dyncall/dyncallback/dyncall_callback_arm32_arm.c
224
- - dyncall/dyncallback/dyncall_callback_arm32_arm.h
205
+ - dyncall/dyncallback/dyncall_callback_arm32.c
225
206
  - dyncall/dyncallback/dyncall_callback_arm32_arm_apple.s
226
207
  - dyncall/dyncallback/dyncall_callback_arm32_arm_gas.S
227
- - dyncall/dyncallback/dyncall_callback_arm32_thumb.c
228
- - dyncall/dyncallback/dyncall_callback_arm32_thumb.h
229
208
  - dyncall/dyncallback/dyncall_callback_arm32_thumb_apple.S
230
209
  - dyncall/dyncallback/dyncall_callback_arm32_thumb_gas.S
231
210
  - dyncall/dyncallback/dyncall_callback_arm64.S
232
211
  - dyncall/dyncallback/dyncall_callback_arm64.c
233
212
  - dyncall/dyncallback/dyncall_callback_mips.c
234
- - dyncall/dyncallback/dyncall_callback_mips.h
213
+ - dyncall/dyncallback/dyncall_callback_mips_eabi_gas.s
214
+ - dyncall/dyncallback/dyncall_callback_mips_gas.S
215
+ - dyncall/dyncallback/dyncall_callback_mips_n32_gas.s
216
+ - dyncall/dyncallback/dyncall_callback_mips_n64_gas.s
217
+ - dyncall/dyncallback/dyncall_callback_mips_o32_gas.s
235
218
  - dyncall/dyncallback/dyncall_callback_ppc32.S
236
219
  - dyncall/dyncallback/dyncall_callback_ppc32.c
237
- - dyncall/dyncallback/dyncall_callback_ppc32.h
238
220
  - dyncall/dyncallback/dyncall_callback_ppc32_apple.s
239
221
  - dyncall/dyncallback/dyncall_callback_ppc64.S
240
222
  - dyncall/dyncallback/dyncall_callback_ppc64.c
241
- - dyncall/dyncallback/dyncall_callback_ppc64.h
242
223
  - dyncall/dyncallback/dyncall_callback_sparc32.c
243
- - dyncall/dyncallback/dyncall_callback_sparc32.h
244
224
  - dyncall/dyncallback/dyncall_callback_sparc32.s
245
225
  - dyncall/dyncallback/dyncall_callback_sparc64.c
246
226
  - dyncall/dyncallback/dyncall_callback_sparc64.s
247
227
  - dyncall/dyncallback/dyncall_callback_x64.S
248
228
  - dyncall/dyncallback/dyncall_callback_x64.c
249
- - dyncall/dyncallback/dyncall_callback_x64.h
250
229
  - dyncall/dyncallback/dyncall_callback_x64_masm.asm
251
230
  - dyncall/dyncallback/dyncall_callback_x86.S
252
231
  - dyncall/dyncallback/dyncall_callback_x86.c
253
- - dyncall/dyncallback/dyncall_callback_x86.h
254
232
  - dyncall/dyncallback/dyncall_callback_x86_8a.s
255
233
  - dyncall/dyncallback/dyncall_callback_x86_masm.asm
256
234
  - dyncall/dyncallback/dyncall_thunk.c
257
235
  - dyncall/dyncallback/dyncall_thunk.h
258
- - dyncall/dyncallback/dyncall_thunk_arm32_arm.c
259
- - dyncall/dyncallback/dyncall_thunk_arm32_arm.h
260
- - dyncall/dyncallback/dyncall_thunk_arm32_thumb.c
261
- - dyncall/dyncallback/dyncall_thunk_arm32_thumb.h
236
+ - dyncall/dyncallback/dyncall_thunk_arm32.c
237
+ - dyncall/dyncallback/dyncall_thunk_arm32.h
262
238
  - dyncall/dyncallback/dyncall_thunk_arm64.c
263
239
  - dyncall/dyncallback/dyncall_thunk_arm64.h
264
240
  - dyncall/dyncallback/dyncall_thunk_mips.c
265
241
  - dyncall/dyncallback/dyncall_thunk_mips.h
242
+ - dyncall/dyncallback/dyncall_thunk_mips64.c
243
+ - dyncall/dyncallback/dyncall_thunk_mips64.h
266
244
  - dyncall/dyncallback/dyncall_thunk_ppc32.c
267
245
  - dyncall/dyncallback/dyncall_thunk_ppc32.h
268
246
  - dyncall/dyncallback/dyncall_thunk_ppc32_sysv.c
@@ -281,18 +259,14 @@ files:
281
259
  - dyncall/dyncallback/mkfile
282
260
  - dyncall/dynload/CMakeLists.txt
283
261
  - dyncall/dynload/DynLoadConfig.cmake
284
- - dyncall/dynload/Makefile.M
285
262
  - dyncall/dynload/Makefile.embedded
286
263
  - dyncall/dynload/Makefile.generic
287
264
  - dyncall/dynload/Nmakefile
288
265
  - dyncall/dynload/README.txt
289
- - dyncall/dynload/TODO
290
- - dyncall/dynload/dynMakefile
291
266
  - dyncall/dynload/dynload.3
292
267
  - dyncall/dynload/dynload.c
293
268
  - dyncall/dynload/dynload.h
294
269
  - dyncall/dynload/dynload_alloc.h
295
- - dyncall/dynload/dynload_darwin.c
296
270
  - dyncall/dynload/dynload_syms.c
297
271
  - dyncall/dynload/dynload_syms_elf.c
298
272
  - dyncall/dynload/dynload_syms_mach-o.c
@@ -305,8 +279,10 @@ files:
305
279
  - dyncall/portasm/portasm-arm.S
306
280
  - dyncall/portasm/portasm-ppc.S
307
281
  - dyncall/portasm/portasm-ppc64.S
308
- - dyncall/portasm/portasm-x64-att.S
282
+ - dyncall/portasm/portasm-x64.S
309
283
  - dyncall/portasm/portasm-x86.S
284
+ - extconf.rb
285
+ - rbdc.c
310
286
  homepage: http://www.dyncall.org
311
287
  licenses:
312
288
  - ISC
@@ -327,7 +303,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
327
303
  version: '0'
328
304
  requirements: []
329
305
  rubyforge_project:
330
- rubygems_version: 2.4.8
306
+ rubygems_version: 2.6.12
331
307
  signing_key:
332
308
  specification_version: 4
333
309
  summary: foreign function interface for C calls