rbdc 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
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
+