rbdc 0.8.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 (266) hide show
  1. data/bindings/ruby/rbdc/extconf.rb +57 -0
  2. data/bindings/ruby/rbdc/rbdc.c +304 -0
  3. data/dyncall/AUTHORS +4 -0
  4. data/dyncall/BUGS +3 -0
  5. data/dyncall/CMakeLists.txt +79 -0
  6. data/dyncall/ChangeLog +165 -0
  7. data/dyncall/LICENSE +15 -0
  8. data/dyncall/Makefile.M +15 -0
  9. data/dyncall/Makefile.embedded +71 -0
  10. data/dyncall/Makefile.generic +36 -0
  11. data/dyncall/Nmakefile +45 -0
  12. data/dyncall/README +92 -0
  13. data/dyncall/ToDo +114 -0
  14. data/dyncall/autovar/LICENSE.txt +15 -0
  15. data/dyncall/autovar/README.txt +69 -0
  16. data/dyncall/autovar/autovar_ABI.h +44 -0
  17. data/dyncall/autovar/autovar_ARCH.h +56 -0
  18. data/dyncall/autovar/autovar_CC.h +46 -0
  19. data/dyncall/autovar/autovar_OS.h +78 -0
  20. data/dyncall/autovar/autovar_OSFAMILY.h +39 -0
  21. data/dyncall/buildsys/cmake/Modules/FindDynCall.cmake +43 -0
  22. data/dyncall/buildsys/cmake/Modules/FindDynCallback.cmake +43 -0
  23. data/dyncall/buildsys/cmake/Modules/FindDynLoad.cmake +45 -0
  24. data/dyncall/buildsys/cmake/Modules/UseLATEX.cmake +811 -0
  25. data/dyncall/buildsys/dynmake/Makefile.base.M +82 -0
  26. data/dyncall/buildsys/dynmake/dynmake.bat +2 -0
  27. data/dyncall/buildsys/dynmake/dynmake.sh +4 -0
  28. data/dyncall/buildsys/lua/Makefile +10 -0
  29. data/dyncall/buildsys/lua/README.txt +4 -0
  30. data/dyncall/buildsys/lua/bootstrap.sh +34 -0
  31. data/dyncall/buildsys/lua/cleanup.sh +6 -0
  32. data/dyncall/buildsys/lua/mkfile +34 -0
  33. data/dyncall/buildsys/lua/setenv.sh +4 -0
  34. data/dyncall/buildsys/mk/app.mk +30 -0
  35. data/dyncall/buildsys/mk/dirs.mk +27 -0
  36. data/dyncall/buildsys/mk/epilog.mk +30 -0
  37. data/dyncall/buildsys/mk/lib.mk +23 -0
  38. data/dyncall/buildsys/mk/pcc.mk +60 -0
  39. data/dyncall/buildsys/mk/prolog.mk +35 -0
  40. data/dyncall/buildsys/nmake/common.nmake +61 -0
  41. data/dyncall/buildsys/nmake/epilog.nmake +28 -0
  42. data/dyncall/buildsys/nmake/prolog.nmake +76 -0
  43. data/dyncall/buildsys/nmake/tool_gcc.nmake +82 -0
  44. data/dyncall/buildsys/nmake/tool_msvc.nmake +67 -0
  45. data/dyncall/buildsys/scripts/batch-build-linux.sh +11 -0
  46. data/dyncall/buildsys/scripts/batch-build-minix.sh +11 -0
  47. data/dyncall/buildsys/scripts/batch-build-psp.sh +11 -0
  48. data/dyncall/buildsys/scripts/conf-nds.bat +41 -0
  49. data/dyncall/buildsys/scripts/setenv-cross-ios.sh +8 -0
  50. data/dyncall/buildsys/scripts/setenv-sdk-ios.sh +22 -0
  51. data/dyncall/buildsys/vs2005/dyncall/dyncall.vcproj +245 -0
  52. data/dyncall/buildsys/vs2005/test_plain/test_plain.vcproj +202 -0
  53. data/dyncall/buildsys/vs2005/vs2005.sln +29 -0
  54. data/dyncall/configure +152 -0
  55. data/dyncall/configure.bat +157 -0
  56. data/dyncall/configure.rc +234 -0
  57. data/dyncall/dynMakefile +4 -0
  58. data/dyncall/dyncall/CMakeLists.txt +53 -0
  59. data/dyncall/dyncall/DynCallConfig.cmake +3 -0
  60. data/dyncall/dyncall/Makefile.M +10 -0
  61. data/dyncall/dyncall/Makefile.embedded +20 -0
  62. data/dyncall/dyncall/Makefile.generic +16 -0
  63. data/dyncall/dyncall/Nmakefile +62 -0
  64. data/dyncall/dyncall/README-Developer.txt +45 -0
  65. data/dyncall/dyncall/README.txt +65 -0
  66. data/dyncall/dyncall/TODO +9 -0
  67. data/dyncall/dyncall/dynMakefile +4 -0
  68. data/dyncall/dyncall/dyncall.3 +189 -0
  69. data/dyncall/dyncall/dyncall.h +135 -0
  70. data/dyncall/dyncall/dyncall_alloc.h +40 -0
  71. data/dyncall/dyncall/dyncall_api.c +167 -0
  72. data/dyncall/dyncall/dyncall_call.S +72 -0
  73. data/dyncall/dyncall/dyncall_call_arm32_arm.S +80 -0
  74. data/dyncall/dyncall/dyncall_call_arm32_arm.h +61 -0
  75. data/dyncall/dyncall/dyncall_call_arm32_arm_armhf.S +96 -0
  76. data/dyncall/dyncall/dyncall_call_arm32_arm_armhf.h +44 -0
  77. data/dyncall/dyncall/dyncall_call_arm32_thumb.h +65 -0
  78. data/dyncall/dyncall/dyncall_call_arm32_thumb_apple.s +80 -0
  79. data/dyncall/dyncall/dyncall_call_arm32_thumb_armhf.S +121 -0
  80. data/dyncall/dyncall/dyncall_call_arm32_thumb_gas.s +101 -0
  81. data/dyncall/dyncall/dyncall_call_mips.h +50 -0
  82. data/dyncall/dyncall/dyncall_call_mips_eabi.h +61 -0
  83. data/dyncall/dyncall/dyncall_call_mips_eabi_gas.s +115 -0
  84. data/dyncall/dyncall/dyncall_call_mips_gas.S +36 -0
  85. data/dyncall/dyncall/dyncall_call_mips_n32.h +67 -0
  86. data/dyncall/dyncall/dyncall_call_mips_n32_gas.s +192 -0
  87. data/dyncall/dyncall/dyncall_call_mips_n64.h +67 -0
  88. data/dyncall/dyncall/dyncall_call_mips_n64_gas.s +192 -0
  89. data/dyncall/dyncall/dyncall_call_mips_o32.h +70 -0
  90. data/dyncall/dyncall/dyncall_call_mips_o32_gas.s +109 -0
  91. data/dyncall/dyncall/dyncall_call_ppc32.S +266 -0
  92. data/dyncall/dyncall/dyncall_call_ppc32.h +62 -0
  93. data/dyncall/dyncall/dyncall_call_sparc.S +192 -0
  94. data/dyncall/dyncall/dyncall_call_sparc.h +42 -0
  95. data/dyncall/dyncall/dyncall_call_sparc64.S +361 -0
  96. data/dyncall/dyncall/dyncall_call_sparc64.h +42 -0
  97. data/dyncall/dyncall/dyncall_call_sparc_v9.S +220 -0
  98. data/dyncall/dyncall/dyncall_call_sparc_v9.h +42 -0
  99. data/dyncall/dyncall/dyncall_call_x64-att.S +146 -0
  100. data/dyncall/dyncall/dyncall_call_x64.S +149 -0
  101. data/dyncall/dyncall/dyncall_call_x64.h +63 -0
  102. data/dyncall/dyncall/dyncall_call_x64_generic_masm.asm +70 -0
  103. data/dyncall/dyncall/dyncall_call_x86.S +238 -0
  104. data/dyncall/dyncall/dyncall_call_x86.h +70 -0
  105. data/dyncall/dyncall/dyncall_call_x86_8a.s +127 -0
  106. data/dyncall/dyncall/dyncall_call_x86_generic_masm.asm +136 -0
  107. data/dyncall/dyncall/dyncall_call_x86_nasm.asm +234 -0
  108. data/dyncall/dyncall/dyncall_callf.c +112 -0
  109. data/dyncall/dyncall/dyncall_callf.h +52 -0
  110. data/dyncall/dyncall/dyncall_callvm.c +68 -0
  111. data/dyncall/dyncall/dyncall_callvm.h +88 -0
  112. data/dyncall/dyncall/dyncall_callvm_arm32_arm.c +250 -0
  113. data/dyncall/dyncall/dyncall_callvm_arm32_arm.h +59 -0
  114. data/dyncall/dyncall/dyncall_callvm_arm32_arm_armhf.c +204 -0
  115. data/dyncall/dyncall/dyncall_callvm_arm32_arm_armhf.h +63 -0
  116. data/dyncall/dyncall/dyncall_callvm_arm32_thumb.c +271 -0
  117. data/dyncall/dyncall/dyncall_callvm_arm32_thumb.h +59 -0
  118. data/dyncall/dyncall/dyncall_callvm_base.c +33 -0
  119. data/dyncall/dyncall/dyncall_callvm_mips.c +40 -0
  120. data/dyncall/dyncall/dyncall_callvm_mips.h +37 -0
  121. data/dyncall/dyncall/dyncall_callvm_mips_eabi.c +181 -0
  122. data/dyncall/dyncall/dyncall_callvm_mips_eabi.h +61 -0
  123. data/dyncall/dyncall/dyncall_callvm_mips_n32.c +268 -0
  124. data/dyncall/dyncall/dyncall_callvm_mips_n64.c +268 -0
  125. data/dyncall/dyncall/dyncall_callvm_mips_n64.h +53 -0
  126. data/dyncall/dyncall/dyncall_callvm_mips_o32.c +235 -0
  127. data/dyncall/dyncall/dyncall_callvm_mips_o32.h +45 -0
  128. data/dyncall/dyncall/dyncall_callvm_ppc32.c +372 -0
  129. data/dyncall/dyncall/dyncall_callvm_ppc32.h +61 -0
  130. data/dyncall/dyncall/dyncall_callvm_sparc.c +155 -0
  131. data/dyncall/dyncall/dyncall_callvm_sparc.h +44 -0
  132. data/dyncall/dyncall/dyncall_callvm_sparc64.c +239 -0
  133. data/dyncall/dyncall/dyncall_callvm_sparc64.h +47 -0
  134. data/dyncall/dyncall/dyncall_callvm_sparc_v9.c +182 -0
  135. data/dyncall/dyncall/dyncall_callvm_sparc_v9.h +45 -0
  136. data/dyncall/dyncall/dyncall_callvm_x64.c +228 -0
  137. data/dyncall/dyncall/dyncall_callvm_x64.h +111 -0
  138. data/dyncall/dyncall/dyncall_callvm_x86.c +667 -0
  139. data/dyncall/dyncall/dyncall_callvm_x86.h +75 -0
  140. data/dyncall/dyncall/dyncall_config.h +46 -0
  141. data/dyncall/dyncall/dyncall_macros.h +248 -0
  142. data/dyncall/dyncall/dyncall_signature.h +71 -0
  143. data/dyncall/dyncall/dyncall_struct.c +255 -0
  144. data/dyncall/dyncall/dyncall_struct.h +69 -0
  145. data/dyncall/dyncall/dyncall_types.h +74 -0
  146. data/dyncall/dyncall/dyncall_utils.h +38 -0
  147. data/dyncall/dyncall/dyncall_value.h +73 -0
  148. data/dyncall/dyncall/dyncall_vector.c +52 -0
  149. data/dyncall/dyncall/dyncall_vector.h +56 -0
  150. data/dyncall/dyncall/gen-masm.sh +7 -0
  151. data/dyncall/dyncall/mkfile +29 -0
  152. data/dyncall/dyncallback/CMakeLists.txt +55 -0
  153. data/dyncall/dyncallback/DynCallbackConfig.cmake +2 -0
  154. data/dyncall/dyncallback/Makefile.M +10 -0
  155. data/dyncall/dyncallback/Makefile.embedded +15 -0
  156. data/dyncall/dyncallback/Makefile.generic +20 -0
  157. data/dyncall/dyncallback/Nmakefile +71 -0
  158. data/dyncall/dyncallback/README.txt +9 -0
  159. data/dyncall/dyncallback/TODO +4 -0
  160. data/dyncall/dyncallback/dynMakefile +4 -0
  161. data/dyncall/dyncallback/dyncall_alloc_wx.c +35 -0
  162. data/dyncall/dyncallback/dyncall_alloc_wx.h +46 -0
  163. data/dyncall/dyncallback/dyncall_alloc_wx_malloc.c +40 -0
  164. data/dyncall/dyncallback/dyncall_alloc_wx_mmap.c +42 -0
  165. data/dyncall/dyncallback/dyncall_alloc_wx_win32.c +42 -0
  166. data/dyncall/dyncallback/dyncall_args.c +45 -0
  167. data/dyncall/dyncallback/dyncall_args.h +65 -0
  168. data/dyncall/dyncallback/dyncall_args_arm32_arm.c +112 -0
  169. data/dyncall/dyncallback/dyncall_args_arm32_arm.h +40 -0
  170. data/dyncall/dyncallback/dyncall_args_arm32_thumb.c +29 -0
  171. data/dyncall/dyncallback/dyncall_args_arm32_thumb.h +32 -0
  172. data/dyncall/dyncallback/dyncall_args_mips.c +81 -0
  173. data/dyncall/dyncallback/dyncall_args_mips.h +41 -0
  174. data/dyncall/dyncallback/dyncall_args_ppc32.c +88 -0
  175. data/dyncall/dyncallback/dyncall_args_ppc32.h +41 -0
  176. data/dyncall/dyncallback/dyncall_args_sparc32.c +41 -0
  177. data/dyncall/dyncallback/dyncall_args_sparc32.h +37 -0
  178. data/dyncall/dyncallback/dyncall_args_sparc64.c +41 -0
  179. data/dyncall/dyncallback/dyncall_args_sparc64.h +37 -0
  180. data/dyncall/dyncallback/dyncall_args_x64.c +73 -0
  181. data/dyncall/dyncallback/dyncall_args_x64.h +44 -0
  182. data/dyncall/dyncallback/dyncall_args_x86.c +121 -0
  183. data/dyncall/dyncallback/dyncall_args_x86.h +58 -0
  184. data/dyncall/dyncallback/dyncall_callback.c +45 -0
  185. data/dyncall/dyncallback/dyncall_callback.h +51 -0
  186. data/dyncall/dyncallback/dyncall_callback_arch.S +71 -0
  187. data/dyncall/dyncallback/dyncall_callback_arm32_arm.c +63 -0
  188. data/dyncall/dyncallback/dyncall_callback_arm32_arm.h +45 -0
  189. data/dyncall/dyncallback/dyncall_callback_arm32_arm_apple.s +73 -0
  190. data/dyncall/dyncallback/dyncall_callback_arm32_arm_gas.s +73 -0
  191. data/dyncall/dyncallback/dyncall_callback_arm32_thumb.c +29 -0
  192. data/dyncall/dyncallback/dyncall_callback_arm32_thumb.h +33 -0
  193. data/dyncall/dyncallback/dyncall_callback_arm32_thumb_apple.s +32 -0
  194. data/dyncall/dyncallback/dyncall_callback_arm32_thumb_gas.s +32 -0
  195. data/dyncall/dyncallback/dyncall_callback_mips.c +61 -0
  196. data/dyncall/dyncallback/dyncall_callback_mips.h +42 -0
  197. data/dyncall/dyncallback/dyncall_callback_ppc32.S +33 -0
  198. data/dyncall/dyncallback/dyncall_callback_ppc32.c +60 -0
  199. data/dyncall/dyncallback/dyncall_callback_ppc32.h +43 -0
  200. data/dyncall/dyncallback/dyncall_callback_ppc32_apple.s +180 -0
  201. data/dyncall/dyncallback/dyncall_callback_sparc32.c +57 -0
  202. data/dyncall/dyncallback/dyncall_callback_sparc32.h +43 -0
  203. data/dyncall/dyncallback/dyncall_callback_sparc32.s +30 -0
  204. data/dyncall/dyncallback/dyncall_callback_sparc64.c +57 -0
  205. data/dyncall/dyncallback/dyncall_callback_sparc64.s +30 -0
  206. data/dyncall/dyncallback/dyncall_callback_x64.S +187 -0
  207. data/dyncall/dyncallback/dyncall_callback_x64.c +69 -0
  208. data/dyncall/dyncallback/dyncall_callback_x64.h +44 -0
  209. data/dyncall/dyncallback/dyncall_callback_x64_apple.s +122 -0
  210. data/dyncall/dyncallback/dyncall_callback_x64_gas.s +119 -0
  211. data/dyncall/dyncallback/dyncall_callback_x64_gas_w64.s +102 -0
  212. data/dyncall/dyncallback/dyncall_callback_x64_masm.asm +89 -0
  213. data/dyncall/dyncallback/dyncall_callback_x86.S +115 -0
  214. data/dyncall/dyncallback/dyncall_callback_x86.c +281 -0
  215. data/dyncall/dyncallback/dyncall_callback_x86.h +49 -0
  216. data/dyncall/dyncallback/dyncall_callback_x86_8a.s +100 -0
  217. data/dyncall/dyncallback/dyncall_callback_x86_masm.asm +74 -0
  218. data/dyncall/dyncallback/dyncall_thunk.c +47 -0
  219. data/dyncall/dyncallback/dyncall_thunk.h +84 -0
  220. data/dyncall/dyncallback/dyncall_thunk_arm32_arm.c +45 -0
  221. data/dyncall/dyncallback/dyncall_thunk_arm32_arm.h +40 -0
  222. data/dyncall/dyncallback/dyncall_thunk_arm32_thumb.c +29 -0
  223. data/dyncall/dyncallback/dyncall_thunk_arm32_thumb.h +35 -0
  224. data/dyncall/dyncallback/dyncall_thunk_mips.c +52 -0
  225. data/dyncall/dyncallback/dyncall_thunk_mips.h +37 -0
  226. data/dyncall/dyncallback/dyncall_thunk_ppc32.c +51 -0
  227. data/dyncall/dyncallback/dyncall_thunk_ppc32.h +40 -0
  228. data/dyncall/dyncallback/dyncall_thunk_sparc32.c +32 -0
  229. data/dyncall/dyncallback/dyncall_thunk_sparc32.h +36 -0
  230. data/dyncall/dyncallback/dyncall_thunk_sparc64.c +32 -0
  231. data/dyncall/dyncallback/dyncall_thunk_sparc64.h +36 -0
  232. data/dyncall/dyncallback/dyncall_thunk_x64.c +48 -0
  233. data/dyncall/dyncallback/dyncall_thunk_x64.h +39 -0
  234. data/dyncall/dyncallback/dyncall_thunk_x86.c +44 -0
  235. data/dyncall/dyncallback/dyncall_thunk_x86.h +39 -0
  236. data/dyncall/dyncallback/dyncallback.3 +134 -0
  237. data/dyncall/dyncallback/gen-masm.sh +8 -0
  238. data/dyncall/dyncallback/mkfile +29 -0
  239. data/dyncall/dynload/CMakeLists.txt +25 -0
  240. data/dyncall/dynload/DynLoadConfig.cmake +3 -0
  241. data/dyncall/dynload/Makefile.M +10 -0
  242. data/dyncall/dynload/Makefile.embedded +22 -0
  243. data/dyncall/dynload/Makefile.generic +18 -0
  244. data/dyncall/dynload/Nmakefile +57 -0
  245. data/dyncall/dynload/README.txt +113 -0
  246. data/dyncall/dynload/TODO +20 -0
  247. data/dyncall/dynload/dynMakefile +4 -0
  248. data/dyncall/dynload/dynload.3 +64 -0
  249. data/dyncall/dynload/dynload.c +38 -0
  250. data/dyncall/dynload/dynload.h +65 -0
  251. data/dyncall/dynload/dynload_alloc.h +40 -0
  252. data/dyncall/dynload/dynload_darwin.c +89 -0
  253. data/dyncall/dynload/dynload_syms.c +38 -0
  254. data/dyncall/dynload/dynload_syms_elf.c +214 -0
  255. data/dyncall/dynload/dynload_syms_mach-o.c +167 -0
  256. data/dyncall/dynload/dynload_syms_pe.c +109 -0
  257. data/dyncall/dynload/dynload_unix.c +57 -0
  258. data/dyncall/dynload/dynload_windows.c +59 -0
  259. data/dyncall/mkfile +36 -0
  260. data/dyncall/portasm/README.txt +42 -0
  261. data/dyncall/portasm/gen-masm.sh +3 -0
  262. data/dyncall/portasm/portasm-arm.S +36 -0
  263. data/dyncall/portasm/portasm-ppc.S +98 -0
  264. data/dyncall/portasm/portasm-x64-att.S +155 -0
  265. data/dyncall/portasm/portasm-x86.S +127 -0
  266. metadata +311 -0
data/dyncall/ChangeLog ADDED
@@ -0,0 +1,165 @@
1
+ This file lists big/noteworthy changes, only...
2
+
3
+ Version 0.8 (upcoming)
4
+ buildsys:
5
+ o big simplification make-based build system, no more distinct GNU and BSD makefiles anymore
6
+ o new, much simpler ./configure for new make-based build-system
7
+ o support for in-source and out-of-source builds for make-based build systems
8
+ o made configure.bat guess x64 as target arch for x64 windows hosts
9
+ o based more sources on portasm generation
10
+ dyncall:
11
+ o fix for ARMv7 Thumb-2 code (tested on iPhone 4 CDMA / iOS 6.0.1)
12
+ o bugfixes for -O2 builds for SPARC-v9 and SPARC-v7
13
+ o new optimized call kernel for SPARC-v9 without conditionals
14
+ o bigger refactoring and optimization of mips o32
15
+ o x64 optimizations
16
+ dyncallback:
17
+ o added callback support for plan9
18
+ o big cleanup, removal of duplicate files after introduction of portasm
19
+ doc:
20
+ o cleanup of manual and corrections
21
+ o added info about newly supported and/or tested platforms (e.g. FreeBSD on ARM)
22
+ o restructured folder layout for documentation
23
+ o added API doc for dyncallback and dynload
24
+ o added manpages for dyncallback and dynload
25
+ tests:
26
+ o added arm/thumb interwork test suite
27
+ bindings:
28
+ o godc: added bindings for Go
29
+ o rbdc: fixed and extended ruby bindings
30
+ o shdc: renamed shell binding to shdc and added feature to list shared-objects' symbols
31
+
32
+ Version 0.7
33
+ architecture:
34
+ o added subproject: portasm - portable (GNU AS,+Apple and MASM) assembly framework
35
+ o added subproject: autovar - predefined macro framework (was dyncall_macros.h)
36
+ o added support for sparc (32-bit) (tested on linux/debian,openbsd,solaris)
37
+ o added support for sparc (64-bit) (tested on linux/debian,openbsd,solaris)
38
+ o added support for Solaris and SunPro compiler for i386, x86_64, sparc and sparc64
39
+ o improved auto-detection via preprocessor defines
40
+ dyncall updates:
41
+ o uses portasm (GNU,Apple,Microsoft) common sources for x86,x64,ppc32,arm32_arm
42
+ o bug fixes for x64/win64 calling convention
43
+ o added support for mingw32-w64 on x64
44
+ o improved cdecl x86 calling convention: stack always 16 byte aligned
45
+ o updated API and initial support for structs (for x86/AMD64)
46
+ o initial support for syscalls on x86, added x86 int80h linux/bsd
47
+ o added Minix port (stable)
48
+ o optimized vector buffer for small type pushing
49
+ o minor fix for amd64/sysv: alignment to 32-byte
50
+ o bug fix for ppc32/sysv: ellipsis calls work now
51
+ o updated API, introduced DC_CALL_C_ELLIPSIS_VARARGS
52
+ o changed interface: dcMode does not reset internally anymore
53
+ dyncallback updates:
54
+ o uses portasm for x86,x64
55
+ o added Solaris/x86/sunpro port (stable)
56
+ o added Minix port (unstable)
57
+ o callback support for Darwin/ppc32
58
+ o updates source, uses relative includes
59
+ dynload updates:
60
+ o fixes for missing includes (dyncall_alloc.h)
61
+ o fixes for self-resolving symbols on windows
62
+ o removed Dbghelf.lib dependency
63
+ o bug fixes for cygwin/x86
64
+ o fixes for beos/haiku
65
+ o no dependencies to libdyncall sources.
66
+ buildsys additions:
67
+ o added zero-config (BSD,GNU,SUN) make files (Makefile.embedded)
68
+ o added in/out-of-source configure2 w/ (BSD,GNU) make files (Makefile.generic')
69
+ o added bootstrap lua script (download/build)
70
+ o Nmakefile: more tests included (resolve_self)
71
+ o improved cross-compilation for iOS (upgrade to 4.3 sdk)
72
+ o darwin 8.0 support
73
+ o added 'install' support for Makefile.embedded
74
+ buildsys/gmake updates:
75
+ o added support for msvc/x64 tool-chain
76
+ o default settings for build-dir changed to '.'
77
+ o cleanup: removed top-level Make{Prolog,Epilog,Rules} files and updated all sub-projects and tests
78
+ o added support for DESTDIR staging installation
79
+ o added support for manual page installation
80
+ buildsys/cmake updates:
81
+ o updated find module scripts (see cmake/Modules)
82
+ o added support for using dyncall as sub-project (via *Config.cmake files)
83
+ see details in README.CMake
84
+ o fixes for msvc and ml
85
+ o fixes for CPack
86
+ o fixes for universal builds on Mac OS X
87
+ o supports SunPro with *.S files.
88
+ o added experimental 'dynMake' portable make-based build-system (not stable, yet)
89
+ documentation updates:
90
+ o added dyncallback documentation
91
+ o updated dyncall documentation
92
+ o minor updates
93
+ tests:
94
+ o added flexible test suite for calls (call_suite) based on Lua and C
95
+ o added syscall test
96
+ o updates to resolve-self test (adding additional link flags to export symbols)
97
+ o improved dir name portability (renamed plain_c++ -> plain_cxx)
98
+ o renamed *.cpp -> *.cc files (OpenBSD/Sun make has no implicit rules for cpp)
99
+
100
+ Version 0.6
101
+ building:
102
+ o new build systems: CMake and Plan9's mk
103
+ o buildsys/gmake tool chain update: pcc and iphone sdk
104
+ o x64 bugfix: added "-fPIC" even for static libs
105
+ dynload updates:
106
+ o enum symbols update: Mach-O and Win64 (thanks Olivier)
107
+ o numerous convenience changes to dynload interface (thanks Olivier)
108
+ o added support for resolving application images itself
109
+ dyncall updates:
110
+ o new platform support: arm/iphone (armv6), x86/Plan9
111
+ o new mips calling conventions: oabi, n64 (both endian models)
112
+ o cleanup: unexported functions in MASM files, b/c export not needed (thanks Olivier)
113
+ o interface update: added error reporting facility 'dcGetError'
114
+ o bugfix for ppc32/sysv: ellipsis calls were broken
115
+ o interface update: added new abstract mode for ellipsis calls (DC_CALL_C_ELLIPSIS)
116
+ docs:
117
+ o comprehensive update
118
+ tests:
119
+ o plain: split "plain" test up in C and C++ part
120
+ o callbacksuite: added multiple configuration support for callback_suite
121
+
122
+ Version 0.5
123
+ o renamed arm9 stuff to arm32
124
+ o added non-EABI ABI for arm32 (before, EABI was the default implementation)
125
+ o added dyncallback support for x64/windows (thanks Olivier), x64/darwin, arm32/arm, arm32/thumb
126
+ o synced documentation again with current state of the source (lots of small changes)
127
+ o updated ruby binding to current state of signature string (still some features missing, though)
128
+ o added a couple of new options to configure scripts (e.g. prefix-bd, new targets, etc.)
129
+ o darwin universal binary support
130
+ o added new tests callback_plain and calback_suite
131
+ o added Haiku/BeOS support
132
+
133
+ Version 0.4
134
+ o added 'doc' makefile target for coherency and ease of use
135
+ o fixed nmake buildfiles and configure.bat (were out of date and wrong)
136
+ o test suite clean up (GNUmake, BSDmake):
137
+ target "config" modified, phony without dependencies to other builds
138
+ o bugfix: GNU fastcall calling convention for float and double arguments
139
+ was wrong. no skip of register.
140
+ o update: x86win32* suite tests are built on cygwin now, added total result output
141
+ o signature types change:
142
+ C Strings: 'S' -> 'Z'
143
+ long: 'l' -> 'j'
144
+ long long: 'L' -> 'l'
145
+ added unsigned integer type signature characters: upper case encoding
146
+ o added: callbacks component (support only for some platforms ATM)
147
+ o added: test cases for alloc_wx, thunk
148
+ o updated Documentation
149
+
150
+ Version 0.3
151
+ o added Linux PPC32 support
152
+ o added ARM THUMB mode support
153
+ o cosmetic changes, documentation updated
154
+ o bugfix: on cygwin exported C symbols in GNU as are prefixed with '_' now.
155
+ o removed scons build support
156
+
157
+ Version 0.2
158
+ o added scons build support
159
+ o configure variables all prefix CONFIG_* now
160
+ o configure variable INSTALL_DIR changed to INSTALL_PREFIX
161
+ o configure (shell version) option "--prefix" changed to "--prefix=<path>"
162
+
163
+ Version 0.1:
164
+ o initial release
165
+
data/dyncall/LICENSE ADDED
@@ -0,0 +1,15 @@
1
+ Copyright (c) 2007-2012 Daniel Adler <dadler@uni-goettingen.de>,
2
+ Tassilo Philipp <tphilipp@potion-studios.com>
3
+
4
+ Permission to use, copy, modify, and distribute this software for any
5
+ purpose with or without fee is hereby granted, provided that the above
6
+ copyright notice and this permission notice appear in all copies.
7
+
8
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
+
@@ -0,0 +1,15 @@
1
+ #include "buildsys/dynmake/Makefile.base.M"
2
+
3
+ all:
4
+ cd dyncall _(SHELL_COMMAND_SEPARATOR) _(MAKE) _(MAKEFLAGS_USER) _(MAKEFLAG_FILE) _(MAKE_DEFAULT_FILE)
5
+ cd dynload _(SHELL_COMMAND_SEPARATOR) _(MAKE) _(MAKEFLAGS_USER) _(MAKEFLAG_FILE) _(MAKE_DEFAULT_FILE)
6
+ cd dyncallback _(SHELL_COMMAND_SEPARATOR) _(MAKE) _(MAKEFLAGS_USER) _(MAKEFLAG_FILE) _(MAKE_DEFAULT_FILE)
7
+
8
+ clean:
9
+ cd dyncall _(SHELL_COMMAND_SEPARATOR) _(MAKE) _(MAKEFLAGS_USER) _(MAKEFLAG_FILE) _(MAKE_DEFAULT_FILE) clean
10
+ cd dynload _(SHELL_COMMAND_SEPARATOR) _(MAKE) _(MAKEFLAGS_USER) _(MAKEFLAG_FILE) _(MAKE_DEFAULT_FILE) clean
11
+ cd dyncallback _(SHELL_COMMAND_SEPARATOR) _(MAKE) _(MAKEFLAGS_USER) _(MAKEFLAG_FILE) _(MAKE_DEFAULT_FILE) clean
12
+
13
+ tests:
14
+ cd test _(SHELL_COMMAND_SEPARATOR) _(MAKE) _(MAKEFLAGS_USER) _(MAKEFLAG_FILE) _(MAKE_DEFAULT_FILE)
15
+
@@ -0,0 +1,71 @@
1
+ MAKEFILE = Makefile.embedded
2
+ MAKE_CMD = ${MAKE} -f ${MAKEFILE}
3
+ all:
4
+ cd dynload && ${MAKE_CMD}
5
+ cd dyncall && ${MAKE_CMD}
6
+ cd dyncallback && ${MAKE_CMD}
7
+ tests:
8
+ cd test && ${MAKE_CMD}
9
+ clean:
10
+ cd dynload && ${MAKE_CMD} clean
11
+ cd dyncall && ${MAKE_CMD} clean
12
+ cd dyncallback && ${MAKE_CMD} clean
13
+ cd test && ${MAKE_CMD} clean
14
+ install:
15
+ cd dynload && ${MAKE_CMD} install
16
+ cd dyncall && ${MAKE_CMD} install
17
+ cd dyncallback && ${MAKE_CMD} install
18
+ bsd:
19
+ ${MAKE_CMD} all
20
+ linux:
21
+ ${MAKE_CMD} all
22
+ linux64:
23
+ CFLAGS="${CFLAGS} -m64" ASFLAGS="${ASFLAGS} -m64" ${MAKE_CMD} all
24
+ minix-gcc:
25
+ cd dyncall && CC=gcc CFLAGS= ${MAKE_CMD}
26
+ cd dyncallback && CC=gcc CFLAGS= ${MAKE_CMD}
27
+ mingw32:
28
+ ${MAKE_CMD} CC=gcc AS="gcc -c" all
29
+ osx:
30
+ ${MAKE_CMD} all
31
+ osx-universal:
32
+ CFLAGS="${CFLAGS} -arch i386 -arch x86_64 -arch ppc" ASFLAGS="${ASFLAGS} -arch i386 -arch x86_64 -arch ppc" AR="libtool" ARFLAGS="-static -o" ${MAKE_CMD} all
33
+ osx-template:
34
+ CC="${CC} ${OSX_ARCH}" AS="${AS} ${OSX_ARCH}" ${MAKE_CMD}
35
+ osx-i386:
36
+ OSX_ARCH="-arch i386" ${MAKE_CMD} osx-template
37
+ sun:
38
+ CFLAGS="${CFLAGS}" ${MAKE_CMD} all
39
+ sun-64bit:
40
+ CFLAGS="${CFLAGS} -m64" ASFLAGS="${ASFLAGS} -m64" ${MAKE_CMD} all
41
+
42
+ sun-gcc:
43
+ CC=gcc CFLAGS="${CFLAGS} -fPIC" ${MAKE_CMD} all
44
+ sun-gcc-64bit:
45
+ CC=gcc CFLAGS="${CFLAGS} -m64" ASFLAGS="${ASFLAGS} -m64" ${MAKE_CMD} all
46
+ ios-sdkroot:
47
+ \
48
+ AS="${CC} ${IOS_ARCH} -miphoneos-version-min=${IOS_SDK}"\
49
+ CC="${CC} ${IOS_ARCH} -miphoneos-version-min=${IOS_SDK}"\
50
+ CXX="${CXX} ${IOS_ARCH} -miphoneos-version-min=${IOS_SDK}"\
51
+ LD="${LD} ${IOS_ARCH} -miphoneos-version-min=${IOS_SDK}"\
52
+ ASFLAGS="-isysroot ${IOS_SDKROOT}"\
53
+ CFLAGS="-isysroot ${IOS_SDKROOT}"\
54
+ CXXFLAGS="-isysroot ${IOS_SDKROOT}"\
55
+ LDFLAGS="-Wl,-syslibroot ${IOS_SDKROOT}"\
56
+ ${MAKE_CMD} all
57
+ ios:
58
+ IOS_SDKROOT="`xcode-select -print-path`/Platforms/iPhone${IOS_PLATFORM}.platform/Developer/SDKs/iPhone${IOS_PLATFORM}${IOS_SDK}.sdk" ${MAKE_CMD} ios-sdkroot
59
+ ios-sim:
60
+ IOS_PLATFORM="Simulator" ${MAKE_CMD} ios
61
+ ios-os:
62
+ IOS_PLATFORM="OS" ${MAKE_CMD} ios
63
+ # NOTE iOS 6.1 does not support armv6 (has no libs)
64
+ ios61-os:
65
+ IOS_SDK="6.1" IOS_ARCH="-arch armv7" ${MAKE_CMD} ios-os
66
+ ios61-os-no-thumb:
67
+ IOS_SDK="6.1" IOS_ARCH="-arch armv7 -mno-thumb" ${MAKE_CMD} ios-os
68
+ ios61-sim:
69
+ IOS_SDK="6.1" IOS_ARCH="-arch i386" ${MAKE_CMD} ios-sim
70
+
71
+ .PHONY: all tests clean install bsd linux linux64 minix-gcc mingw32 osx osx-universal sun sun-64bit sun-gcc sun-gcc-64bit
@@ -0,0 +1,36 @@
1
+ .PHONY: all clean install tests docs run-tests clean distclean libdyncall libdyncallback libdynload
2
+ all: libdyncall libdyncallback libdynload
3
+ install: all install-libdyncall install-libdyncallback install-libdynload
4
+ libdyncall:
5
+ cd dyncall && ${MAKE} all
6
+ libdyncallback:
7
+ cd dyncallback && ${MAKE} all
8
+ libdynload:
9
+ cd dynload && ${MAKE} all
10
+ install-libdyncall: libdyncall
11
+ cd dyncall && ${MAKE} install
12
+ install-libdyncallback: libdyncallback
13
+ cd dyncallback && ${MAKE} install
14
+ install-libdynload: libdynload
15
+ cd dynload && ${MAKE} install
16
+ clean:
17
+ cd dyncall && ${MAKE} $@
18
+ cd dynload && ${MAKE} $@
19
+ cd dyncallback && ${MAKE} $@
20
+ cd test && ${MAKE} $@
21
+ cd doc && ${MAKE} $@
22
+ tests: tests-libdyncall tests-libdyncallback tests-libdynload
23
+ tests-libdyncall: libdyncall
24
+ cd test && ${MAKE} all-dyncall
25
+ tests-libdyncallback: libdyncallback
26
+ cd test && ${MAKE} all-dyncallback
27
+ tests-libdynload: libdynload
28
+ cd test && ${MAKE} all-dynload
29
+ docs:
30
+ cd doc && ${MAKE} all
31
+ run-tests: all
32
+ cd test && ${MAKE} $@
33
+ distclean: clean
34
+ rm -f Makefile.config
35
+ find . -type f -name "Makefile.generic" | sed s/\.generic$$// | xargs rm
36
+
data/dyncall/Nmakefile ADDED
@@ -0,0 +1,45 @@
1
+ #//////////////////////////////////////////////////////////////////////////////
2
+ #
3
+ # Copyright (c) 2007,2009 Daniel Adler <dadler@uni-goettingen.de>,
4
+ # Tassilo Philipp <tphilipp@potion-studios.com>
5
+ #
6
+ # Permission to use, copy, modify, and distribute this software for any
7
+ # purpose with or without fee is hereby granted, provided that the above
8
+ # copyright notice and this permission notice appear in all copies.
9
+ #
10
+ # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11
+ # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12
+ # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13
+ # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14
+ # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15
+ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16
+ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17
+ #
18
+ #//////////////////////////////////////////////////////////////////////////////
19
+
20
+ #///////////////////////////////////////////////////
21
+ #
22
+ # nmake makefile
23
+ # Nmakefile
24
+ #
25
+ #///////////////////////////////////////////////////
26
+
27
+
28
+ TOP = .
29
+
30
+ !INCLUDE $(TOP)\buildsys\nmake\prolog.nmake
31
+
32
+ DIRS = dyncall dynload dyncallback
33
+
34
+ tests: dummy
35
+ !echo Building tests ... && cd test && $(MAKE) /NOLOGO /F Nmakefile && cd ..
36
+
37
+ doc: dummy
38
+ !echo Building documentation ... && cd $@/manual && $(MAKE) /NOLOGO /F Nmakefile && cd ..
39
+
40
+ # Pseudo-targets are always out of date...
41
+ dummy:
42
+
43
+
44
+ !INCLUDE $(TOP)\buildsys\nmake\epilog.nmake
45
+
data/dyncall/README ADDED
@@ -0,0 +1,92 @@
1
+ dyncall - A Generic Dynamic FFI package
2
+ =======================================
3
+
4
+ The dyncall software distribution comprises a low-level toolkit for
5
+ the implementation of Foreign Function Interfaces.
6
+ It comprises abstractions to the Application Binary Interface of a
7
+ number of hard- and software platforms.
8
+
9
+ The software package comprises three C libraries, namely:
10
+
11
+ - Library dyncall for making function calls,
12
+ - Library dyncallback or writing generic callback handlers, and
13
+ - Library dynload for loading code.
14
+
15
+ The dyncall library provides a portable interface for calling
16
+ C functions from within dynamic execution environments, such as
17
+ interpreters or application servers.
18
+ The dyncallback library allows to implement a callback handler in C
19
+ for handling arbitrary C callbacks from within dynamic execution environments.
20
+ The dynload library provides a thin abstraction layer for loading of code
21
+ and also allows to enumerate the contents of shared librarys or DLLs.
22
+
23
+ Typical applications for dyncall are FFI (foreign function interface) packages
24
+ for scripting languages to connect with the C/C++ world.
25
+
26
+ The binary footprint of the whole package is approx. 20 kb.
27
+
28
+
29
+ Building the library
30
+ --------------------
31
+
32
+ Prequisites:
33
+ - C compiler such as gcc,clang,sunpro or msvc.
34
+ - Assembler such as gas (GNU/apple), fbe or masm.
35
+
36
+ Supported Architectures and ABIs:
37
+ ---------------------------------
38
+ - x86 32/64-bit (cdecl, fastcall, stdcall, C++ this calls, Syscalls)
39
+ - ARM AArch32 (ARM/Thumb mode, v4t-v7, oabi/eabi, soft/hardfloat ABIs)
40
+ - MIPS 32/64-bit (o32, n64, eabi)
41
+ - PowerPC 32-bit (Mac OS X, System V)
42
+ - Sparc 32/64-bit (v7/8 and v9)
43
+
44
+ Supported Operating Systems:
45
+ ----------------------------
46
+ - Android
47
+ - *BSD
48
+ - Haiku
49
+ - iOS
50
+ - Linux
51
+ - Mac OS X
52
+ - Microsoft Windows
53
+ - Minix
54
+ - Nintendo DS Homebrew
55
+ - Plan9 / 9front
56
+ - Playstation Portable Homebrew
57
+ - ReactOS
58
+ - Solaris
59
+
60
+ Building the library
61
+ --------------------
62
+ Using `homebrewed' configure shell script and GNU/BSD/Sun make system.
63
+
64
+ $ ./configure
65
+ $ make
66
+ $ make install
67
+
68
+ Testing:
69
+
70
+ $ make tests
71
+ $ make run-tests
72
+
73
+ Out-of-source building:
74
+ ----------------------
75
+
76
+ $ cd <build_dir>
77
+ $ <src_dir>/configure --prefix=<install_dir>
78
+ $ make
79
+ $ sudo make install
80
+
81
+
82
+ Building using CMake
83
+ --------------------
84
+
85
+ $ cmake
86
+ $ make
87
+ $ sudo make install
88
+
89
+
90
+ Please refer to http://www.dyncall.org, dyncall(3), the dyncall manual and
91
+ platform-specific READMEs under doc/ for more information.
92
+