rbdc 0.8.7 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/{bindings → dyncall-bindings}/ruby/rbdc/extconf.rb +1 -1
- data/{bindings → dyncall-bindings}/ruby/rbdc/rbdc.c +3 -1
- data/dyncall/AUTHORS +2 -0
- data/dyncall/BUGS +1 -0
- data/dyncall/CMakeLists.txt +10 -2
- data/dyncall/ChangeLog +46 -11
- data/dyncall/LICENSE +4 -1
- data/dyncall/Makefile.embedded +7 -3
- data/dyncall/README +23 -14
- data/dyncall/ToDo +27 -28
- data/dyncall/autovar/autovar_ABI.h +3 -2
- data/dyncall/autovar/autovar_ARCH.h +13 -10
- data/dyncall/autovar/autovar_CC.h +3 -2
- data/dyncall/autovar/autovar_OS.h +3 -2
- data/dyncall/autovar/autovar_OSFAMILY.h +3 -2
- data/dyncall/buildsys/scripts/batch-build-linux.sh +6 -2
- data/dyncall/buildsys/scripts/batch-build-minix.sh +2 -0
- data/dyncall/buildsys/scripts/batch-build-psp.sh +4 -1
- data/dyncall/buildsys/scripts/elf-to-psp-eboot.sh +19 -0
- data/dyncall/buildsys/scripts/setenv-cross-ios.sh +0 -0
- data/dyncall/buildsys/scripts/setenv-sdk-ios.sh +0 -0
- data/dyncall/configure +83 -30
- data/dyncall/dyncall/dyncall.3 +16 -4
- data/dyncall/dyncall/dyncall.h +9 -1
- data/dyncall/dyncall/dyncall_alloc.h +2 -1
- data/dyncall/dyncall/dyncall_api.c +2 -1
- data/dyncall/dyncall/dyncall_call.S +9 -2
- data/dyncall/dyncall/dyncall_call_arm32_arm.S +2 -1
- data/dyncall/dyncall/dyncall_call_arm32_arm.h +8 -2
- data/dyncall/dyncall/dyncall_call_arm32_arm_armhf.S +11 -19
- data/dyncall/dyncall/dyncall_call_arm32_arm_armhf.h +15 -2
- data/dyncall/dyncall/dyncall_call_arm32_thumb.h +8 -6
- data/dyncall/dyncall/dyncall_call_arm32_thumb_armhf.S +10 -18
- data/dyncall/dyncall/dyncall_call_arm32_thumb_gas.s +0 -16
- data/dyncall/dyncall/dyncall_call_arm64.S +226 -0
- data/dyncall/dyncall/dyncall_call_arm64.h +45 -0
- data/dyncall/dyncall/dyncall_call_mips.h +2 -1
- data/dyncall/dyncall/dyncall_call_mips_eabi.h +2 -1
- data/dyncall/dyncall/dyncall_call_mips_gas.S +2 -1
- data/dyncall/dyncall/dyncall_call_mips_n32.h +2 -1
- data/dyncall/dyncall/dyncall_call_mips_n64.h +2 -1
- data/dyncall/dyncall/dyncall_call_mips_o32.h +2 -1
- data/dyncall/dyncall/dyncall_call_ppc32.S +27 -2
- data/dyncall/dyncall/dyncall_call_ppc32.h +2 -2
- data/dyncall/dyncall/dyncall_call_ppc64.S +210 -0
- data/dyncall/dyncall/dyncall_call_ppc64.h +55 -0
- data/dyncall/dyncall/dyncall_call_sparc.S +2 -1
- data/dyncall/dyncall/dyncall_call_sparc.h +2 -1
- data/dyncall/dyncall/dyncall_call_sparc64.S +2 -1
- data/dyncall/dyncall/dyncall_call_sparc64.h +2 -1
- data/dyncall/dyncall/dyncall_call_sparc_v9.S +25 -23
- data/dyncall/dyncall/dyncall_call_sparc_v9.h +2 -1
- data/dyncall/dyncall/dyncall_call_x64-att.S +2 -1
- data/dyncall/dyncall/dyncall_call_x64.S +2 -1
- data/dyncall/dyncall/dyncall_call_x64.h +2 -1
- data/dyncall/dyncall/dyncall_call_x86.S +2 -1
- data/dyncall/dyncall/dyncall_call_x86.h +2 -1
- data/dyncall/dyncall/dyncall_callf.c +56 -66
- data/dyncall/dyncall/dyncall_callf.h +5 -1
- data/dyncall/dyncall/dyncall_callvm.c +11 -2
- data/dyncall/dyncall/dyncall_callvm.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_arm32_arm.c +2 -1
- data/dyncall/dyncall/dyncall_callvm_arm32_arm.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_arm32_arm_armhf.c +60 -30
- data/dyncall/dyncall/dyncall_callvm_arm32_arm_armhf.h +3 -2
- data/dyncall/dyncall/dyncall_callvm_arm32_thumb.c +2 -24
- data/dyncall/dyncall/dyncall_callvm_arm32_thumb.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_arm64.c +165 -0
- data/dyncall/dyncall/dyncall_callvm_arm64.h +51 -0
- data/dyncall/dyncall/dyncall_callvm_arm64_apple.c +272 -0
- data/dyncall/dyncall/dyncall_callvm_base.c +2 -1
- data/dyncall/dyncall/dyncall_callvm_mips.c +2 -1
- data/dyncall/dyncall/dyncall_callvm_mips.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_mips_eabi.c +2 -1
- data/dyncall/dyncall/dyncall_callvm_mips_eabi.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_mips_n32.c +2 -1
- data/dyncall/dyncall/dyncall_callvm_mips_n64.c +2 -1
- data/dyncall/dyncall/dyncall_callvm_mips_n64.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_mips_o32.c +2 -1
- data/dyncall/dyncall/dyncall_callvm_mips_o32.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_ppc32.c +45 -2
- data/dyncall/dyncall/dyncall_callvm_ppc32.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_ppc64.c +351 -0
- data/dyncall/dyncall/dyncall_callvm_ppc64.h +60 -0
- data/dyncall/dyncall/dyncall_callvm_sparc.c +2 -1
- data/dyncall/dyncall/dyncall_callvm_sparc.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_sparc64.c +2 -2
- data/dyncall/dyncall/dyncall_callvm_sparc64.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_sparc_v9.c +3 -3
- data/dyncall/dyncall/dyncall_callvm_sparc_v9.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_x64.c +2 -1
- data/dyncall/dyncall/dyncall_callvm_x64.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_x86.c +2 -1
- data/dyncall/dyncall/dyncall_callvm_x86.h +2 -1
- data/dyncall/dyncall/dyncall_config.h +2 -1
- data/dyncall/dyncall/dyncall_macros.h +46 -9
- data/dyncall/dyncall/dyncall_signature.h +2 -1
- data/dyncall/dyncall/dyncall_struct.c +2 -1
- data/dyncall/dyncall/dyncall_struct.h +2 -1
- data/dyncall/dyncall/dyncall_types.h +2 -1
- data/dyncall/dyncall/dyncall_utils.h +2 -1
- data/dyncall/dyncall/dyncall_value.h +19 -1
- data/dyncall/dyncall/dyncall_vector.c +2 -1
- data/dyncall/dyncall/dyncall_vector.h +3 -1
- data/dyncall/dyncall/gen-masm.sh +0 -0
- data/dyncall/dyncallback/Makefile.generic +1 -1
- data/dyncall/dyncallback/dyncall_alloc_wx.c +2 -1
- data/dyncall/dyncallback/dyncall_alloc_wx.h +2 -1
- data/dyncall/dyncallback/dyncall_alloc_wx_malloc.c +2 -1
- data/dyncall/dyncallback/dyncall_alloc_wx_mmap.c +2 -1
- data/dyncall/dyncallback/dyncall_alloc_wx_win32.c +2 -1
- data/dyncall/dyncallback/dyncall_args.c +22 -10
- data/dyncall/dyncallback/dyncall_args.h +2 -1
- data/dyncall/dyncallback/dyncall_args_arm32_arm.c +35 -4
- data/dyncall/dyncallback/dyncall_args_arm32_arm.h +7 -1
- data/dyncall/dyncallback/dyncall_args_arm32_thumb.c +2 -1
- data/dyncall/dyncallback/dyncall_args_arm32_thumb.h +2 -1
- data/dyncall/dyncallback/dyncall_args_arm64.c +77 -0
- data/dyncall/dyncallback/dyncall_args_arm64_apple.c +160 -0
- data/dyncall/dyncallback/dyncall_args_mips.c +3 -2
- data/dyncall/dyncallback/dyncall_args_mips.h +3 -2
- data/dyncall/dyncallback/dyncall_args_ppc32.c +2 -1
- data/dyncall/dyncallback/dyncall_args_ppc32.h +9 -7
- data/dyncall/dyncallback/dyncall_args_ppc32_sysv.c +95 -0
- data/dyncall/dyncallback/dyncall_args_ppc64.c +71 -0
- data/dyncall/dyncallback/dyncall_args_ppc64.h +40 -0
- data/dyncall/dyncallback/dyncall_args_sparc32.c +2 -1
- data/dyncall/dyncallback/dyncall_args_sparc32.h +2 -1
- data/dyncall/dyncallback/dyncall_args_sparc64.c +2 -1
- data/dyncall/dyncallback/dyncall_args_sparc64.h +2 -1
- data/dyncall/dyncallback/dyncall_args_x64.c +2 -1
- data/dyncall/dyncallback/dyncall_args_x64.h +2 -1
- data/dyncall/dyncallback/dyncall_args_x86.c +2 -1
- data/dyncall/dyncallback/dyncall_args_x86.h +2 -1
- data/dyncall/dyncallback/dyncall_callback.c +7 -2
- data/dyncall/dyncallback/dyncall_callback.h +3 -1
- data/dyncall/dyncallback/dyncall_callback_arch.S +14 -6
- data/dyncall/dyncallback/dyncall_callback_arm32_arm.c +2 -1
- data/dyncall/dyncallback/dyncall_callback_arm32_arm.h +2 -1
- data/dyncall/dyncallback/dyncall_callback_arm32_arm_apple.s +1 -1
- data/dyncall/dyncallback/{dyncall_callback_arm32_arm_gas.s → dyncall_callback_arm32_arm_gas.S} +17 -7
- data/dyncall/dyncallback/dyncall_callback_arm32_thumb.c +2 -1
- data/dyncall/dyncallback/dyncall_callback_arm32_thumb.h +2 -1
- data/dyncall/dyncallback/{dyncall_callback_arm32_thumb_apple.s → dyncall_callback_arm32_thumb_apple.S} +2 -2
- data/dyncall/dyncallback/{dyncall_callback_arm32_thumb_gas.s → dyncall_callback_arm32_thumb_gas.S} +2 -2
- data/dyncall/dyncallback/dyncall_callback_arm64.S +111 -0
- data/dyncall/dyncallback/dyncall_callback_arm64.c +71 -0
- data/dyncall/dyncallback/dyncall_callback_mips.c +3 -2
- data/dyncall/dyncallback/dyncall_callback_mips.h +3 -2
- data/dyncall/dyncallback/dyncall_callback_ppc32.S +115 -4
- data/dyncall/dyncallback/dyncall_callback_ppc32.c +3 -2
- data/dyncall/dyncallback/dyncall_callback_ppc32.h +6 -6
- data/dyncall/dyncallback/dyncall_callback_ppc32_apple.s +6 -5
- data/dyncall/dyncallback/dyncall_callback_ppc64.S +170 -0
- data/dyncall/dyncallback/dyncall_callback_ppc64.c +60 -0
- data/dyncall/dyncallback/dyncall_callback_ppc64.h +56 -0
- data/dyncall/dyncallback/dyncall_callback_sparc32.c +2 -1
- data/dyncall/dyncallback/dyncall_callback_sparc32.h +2 -1
- data/dyncall/dyncallback/dyncall_callback_sparc32.s +1 -1
- data/dyncall/dyncallback/dyncall_callback_sparc64.c +2 -1
- data/dyncall/dyncallback/dyncall_callback_sparc64.s +1 -1
- data/dyncall/dyncallback/dyncall_callback_x64.S +5 -12
- data/dyncall/dyncallback/dyncall_callback_x64.c +2 -1
- data/dyncall/dyncallback/dyncall_callback_x64.h +2 -1
- data/dyncall/dyncallback/dyncall_callback_x64_masm.asm +0 -7
- data/dyncall/dyncallback/dyncall_callback_x86.S +5 -12
- data/dyncall/dyncallback/dyncall_callback_x86.c +2 -1
- data/dyncall/dyncallback/dyncall_callback_x86.h +2 -1
- data/dyncall/dyncallback/dyncall_callback_x86_masm.asm +2 -11
- data/dyncall/dyncallback/dyncall_thunk.c +11 -3
- data/dyncall/dyncallback/dyncall_thunk.h +8 -2
- data/dyncall/dyncallback/dyncall_thunk_arm32_arm.c +7 -7
- data/dyncall/dyncallback/dyncall_thunk_arm32_arm.h +2 -1
- data/dyncall/dyncallback/dyncall_thunk_arm32_thumb.c +2 -1
- data/dyncall/dyncallback/dyncall_thunk_arm32_thumb.h +2 -1
- data/dyncall/dyncallback/dyncall_thunk_arm64.c +64 -0
- data/dyncall/dyncallback/dyncall_thunk_arm64.h +42 -0
- data/dyncall/dyncallback/dyncall_thunk_mips.c +49 -17
- data/dyncall/dyncallback/dyncall_thunk_mips.h +3 -2
- data/dyncall/dyncallback/dyncall_thunk_ppc32.c +3 -2
- data/dyncall/dyncallback/dyncall_thunk_ppc32.h +7 -7
- data/dyncall/dyncallback/dyncall_thunk_ppc32_sysv.c +50 -0
- data/dyncall/dyncallback/dyncall_thunk_ppc64.c +87 -0
- data/dyncall/dyncallback/dyncall_thunk_ppc64.h +55 -0
- data/dyncall/dyncallback/dyncall_thunk_sparc32.c +2 -1
- data/dyncall/dyncallback/dyncall_thunk_sparc32.h +2 -1
- data/dyncall/dyncallback/dyncall_thunk_sparc64.c +2 -1
- data/dyncall/dyncallback/dyncall_thunk_sparc64.h +2 -1
- data/dyncall/dyncallback/dyncall_thunk_x64.c +2 -1
- data/dyncall/dyncallback/dyncall_thunk_x64.h +2 -1
- data/dyncall/dyncallback/dyncall_thunk_x86.c +2 -1
- data/dyncall/dyncallback/dyncall_thunk_x86.h +2 -1
- data/dyncall/dyncallback/dyncallback.3 +3 -3
- data/dyncall/dyncallback/gen-masm.sh +0 -0
- data/dyncall/dynload/dynload.c +2 -1
- data/dyncall/dynload/dynload.h +2 -1
- data/dyncall/dynload/dynload_alloc.h +2 -1
- data/dyncall/dynload/dynload_darwin.c +2 -1
- data/dyncall/dynload/dynload_syms.c +2 -1
- data/dyncall/dynload/dynload_syms_elf.c +2 -1
- data/dyncall/dynload/dynload_syms_mach-o.c +3 -2
- data/dyncall/dynload/dynload_syms_pe.c +2 -1
- data/dyncall/dynload/dynload_unix.c +2 -1
- data/dyncall/dynload/dynload_windows.c +2 -1
- data/dyncall/portasm/gen-masm.sh +0 -0
- data/dyncall/portasm/portasm-arm.S +3 -2
- data/dyncall/portasm/portasm-ppc.S +2 -1
- data/dyncall/portasm/portasm-ppc64.S +119 -0
- data/dyncall/portasm/portasm-x64-att.S +2 -1
- data/dyncall/portasm/portasm-x86.S +2 -1
- metadata +39 -18
- data/dyncall/dyncallback/dyncall_callback_x64_apple.s +0 -122
- data/dyncall/dyncallback/dyncall_callback_x64_gas.s +0 -119
- data/dyncall/dyncallback/dyncall_callback_x64_gas_w64.s +0 -102
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 76ba7a97e6c88e40f86e1a59a4c6023222ed83db
|
4
|
+
data.tar.gz: c24246dc7d908499db4760aac24cb40f3213acc5
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 4c2d628c9aed7e969046206fc969b51082daad477b32191d04b0a95295428cdbc447e727788c3cc4384f7b81f0d928cab225225f3af7da5650f8e9de35478da3
|
7
|
+
data.tar.gz: 8fefae5a9f123004aa604322676b9800c6af14cc4b73b16c41c74820c9304605d7812314b2083fc1bf8d7e84f8e524357195985b0623bd6c414626b784c79530
|
@@ -1,7 +1,7 @@
|
|
1
1
|
#//////////////////////////////////////////////////////////////////////
|
2
2
|
#
|
3
3
|
# extconf.rb
|
4
|
-
# Copyright (c) 2007-
|
4
|
+
# Copyright (c) 2007-2015 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
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/*
|
2
2
|
|
3
3
|
rbdc.c
|
4
|
-
Copyright (c) 2007-
|
4
|
+
Copyright (c) 2007-2015 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
|
@@ -211,6 +211,8 @@ static VALUE ExtLib_Call(int argc, VALUE* argv, VALUE self)
|
|
211
211
|
for(i=2; i<argc; ++i) {
|
212
212
|
t = TYPE(argv[i]);
|
213
213
|
|
214
|
+
//@@@ add support for calling convention mode(s)
|
215
|
+
|
214
216
|
switch(sig[i-2]) {
|
215
217
|
case DC_SIGCHAR_BOOL:
|
216
218
|
b = 1;
|
data/dyncall/AUTHORS
CHANGED
data/dyncall/BUGS
CHANGED
@@ -1,3 +1,4 @@
|
|
1
1
|
- add support for SELinux; object files need to be tagged with section '.section .note.GNU-stack,"",%progbits'
|
2
2
|
- dyncall sparc v7/v8: -xO3 on SunPro segfaults in tests.
|
3
3
|
- dyncall sparc64 port: works fine on Debian 6, but has issues on OpenBSD and Solaris regarding passing of float and double values.
|
4
|
+
- this BUGS file should be merged with ToDo or vice-versa
|
data/dyncall/CMakeLists.txt
CHANGED
@@ -46,7 +46,7 @@ if(MSVC)
|
|
46
46
|
#set(CMAKE_ASM_COMPILER_ARG1 "/c")
|
47
47
|
#set(CMAKE_ASM_MASM_SOURCE_FILE_EXTENSIONS asm)
|
48
48
|
#set(CMAKE_ASM_MASM_COMPILE_OBJECT "<CMAKE_ASM_MASM_COMPILER> <FLAGS> /c /Fo <OBJECT> <SOURCE>")
|
49
|
-
elseif(CMAKE_COMPILER_IS_GNUCC)
|
49
|
+
elseif(CMAKE_COMPILER_IS_GNUCC OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Intel")
|
50
50
|
# when used in shared libraries, -fPIC is required by several architectures
|
51
51
|
# and platforms (observed on AMD64, Solaris/Sparc).
|
52
52
|
# we enable it per default here.
|
@@ -55,13 +55,21 @@ elseif(CMAKE_COMPILER_IS_GNUCC)
|
|
55
55
|
set(CMAKE_ASM_COMPILER "${CMAKE_C_COMPILER}")
|
56
56
|
set(CMAKE_ASM_COMPILER_ARG1 "${CPPFLAGS} -c")
|
57
57
|
enable_language(ASM)
|
58
|
+
elseif(CMAKE_COMPILER_IS_CLANG)
|
58
59
|
elseif("${CMAKE_C_COMPILER_ID}" STREQUAL "SunPro")
|
59
60
|
set(CMAKE_ASM_COMPILER "${CMAKE_C_COMPILER}")
|
60
61
|
set(CMAKE_ASM_COMPILER_ARG1 "${CPPFLAGS} -c")
|
61
62
|
enable_language(ASM)
|
63
|
+
else()
|
64
|
+
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
65
|
+
add_definitions("-fPIC")
|
66
|
+
# enable gcc as front-end to assembler for .S files
|
67
|
+
set(CMAKE_ASM_COMPILER "${CMAKE_C_COMPILER}")
|
68
|
+
set(CMAKE_ASM_COMPILER_ARG1 "${CPPFLAGS} -c")
|
69
|
+
enable_language(ASM)
|
70
|
+
endif()
|
62
71
|
endif()
|
63
72
|
|
64
|
-
|
65
73
|
add_subdirectory(dynload)
|
66
74
|
add_subdirectory(dyncall)
|
67
75
|
add_subdirectory(dyncallback)
|
data/dyncall/ChangeLog
CHANGED
@@ -1,9 +1,44 @@
|
|
1
|
-
This file lists
|
1
|
+
This file lists bigger/noteworthy changes, only...
|
2
2
|
|
3
|
-
Version 0
|
4
|
-
...
|
3
|
+
Version 1.0 (upcoming)
|
4
|
+
o ...
|
5
5
|
|
6
|
-
Version 0.
|
6
|
+
Version 0.9 (2015/12/31)
|
7
|
+
dyncall:
|
8
|
+
o ARM64 support (AAPCS64 on Linux & Apple's derived version on iOS)
|
9
|
+
o armhf calling convention support for ARM32
|
10
|
+
o PPC64 support, including syscalls (thanks Masanori!)
|
11
|
+
o introduced dcArgF and dcVArgF for flexible/convenient argument binding (works like dcCallF/dcVCallF but without the function call)
|
12
|
+
o using -fPIC by default for FreeBSD
|
13
|
+
o PPC32 linux syscall support
|
14
|
+
o fixed return value errors for arm32 on some platforms (e.g. freebsd/arm32, nintendo ds); arm & thumb mode
|
15
|
+
dyncallback:
|
16
|
+
o ARM64 support (AAPCS64 on Linux, Apple's derived version on iOS)
|
17
|
+
o armhf calling convention support for ARM32
|
18
|
+
o PPC64 support (thanks Masanori!)
|
19
|
+
o PPC32 System V support (Linux)
|
20
|
+
o fix for PPC32 Darwin/OS X
|
21
|
+
o more intuitive specification of callback return type
|
22
|
+
doc:
|
23
|
+
o added ARM64 support info and calling convention documentation
|
24
|
+
o added ARM32 armhf section
|
25
|
+
o added PPC64 support info
|
26
|
+
o cleanup, brought all up to date, etc.
|
27
|
+
tests:
|
28
|
+
o callf test covers new argf interface
|
29
|
+
o several fixes to some test suites
|
30
|
+
buildsys:
|
31
|
+
o more flexible testsuite build and 'pack' target for convenience
|
32
|
+
o fixes/additions for OS X universal builds
|
33
|
+
o added iOS universal build support for armv7/arm64
|
34
|
+
o helper script for generic .elf -> EBOOT.PBP creation for PSP
|
35
|
+
o Sun make fixes for C++ code in test suite
|
36
|
+
bindings:
|
37
|
+
o erldc: Erlang binding (thanks Erik!)
|
38
|
+
infrastructure:
|
39
|
+
o moved to hg
|
40
|
+
|
41
|
+
Version 0.8 (2014/03/24)
|
7
42
|
buildsys:
|
8
43
|
o big simplification make-based build system, no more distinct GNU and BSD makefiles anymore
|
9
44
|
o new, much simpler ./configure for new make-based build-system
|
@@ -33,7 +68,7 @@ bindings:
|
|
33
68
|
o rbdc: fixed and extended ruby bindings
|
34
69
|
o shdc: renamed shell binding to shdc and added feature to list shared-objects' symbols
|
35
70
|
|
36
|
-
Version 0.7
|
71
|
+
Version 0.7 (2012/01/02)
|
37
72
|
architecture:
|
38
73
|
o added subproject: portasm - portable (GNU AS,+Apple and MASM) assembly framework
|
39
74
|
o added subproject: autovar - predefined macro framework (was dyncall_macros.h)
|
@@ -101,7 +136,7 @@ tests:
|
|
101
136
|
o improved dir name portability (renamed plain_c++ -> plain_cxx)
|
102
137
|
o renamed *.cpp -> *.cc files (OpenBSD/Sun make has no implicit rules for cpp)
|
103
138
|
|
104
|
-
Version 0.6
|
139
|
+
Version 0.6 (2010/09/25)
|
105
140
|
building:
|
106
141
|
o new build systems: CMake and Plan9's mk
|
107
142
|
o buildsys/gmake tool chain update: pcc and iphone sdk
|
@@ -123,7 +158,7 @@ tests:
|
|
123
158
|
o plain: split "plain" test up in C and C++ part
|
124
159
|
o callbacksuite: added multiple configuration support for callback_suite
|
125
160
|
|
126
|
-
Version 0.5
|
161
|
+
Version 0.5 (2010/02/01)
|
127
162
|
o renamed arm9 stuff to arm32
|
128
163
|
o added non-EABI ABI for arm32 (before, EABI was the default implementation)
|
129
164
|
o added dyncallback support for x64/windows (thanks Olivier), x64/darwin, arm32/arm, arm32/thumb
|
@@ -134,7 +169,7 @@ Version 0.5
|
|
134
169
|
o added new tests callback_plain and calback_suite
|
135
170
|
o added Haiku/BeOS support
|
136
171
|
|
137
|
-
Version 0.4
|
172
|
+
Version 0.4 (2009/07/06)
|
138
173
|
o added 'doc' makefile target for coherency and ease of use
|
139
174
|
o fixed nmake buildfiles and configure.bat (were out of date and wrong)
|
140
175
|
o test suite clean up (GNUmake, BSDmake):
|
@@ -151,19 +186,19 @@ Version 0.4
|
|
151
186
|
o added: test cases for alloc_wx, thunk
|
152
187
|
o updated Documentation
|
153
188
|
|
154
|
-
Version 0.3
|
189
|
+
Version 0.3 (2009/01/17)
|
155
190
|
o added Linux PPC32 support
|
156
191
|
o added ARM THUMB mode support
|
157
192
|
o cosmetic changes, documentation updated
|
158
193
|
o bugfix: on cygwin exported C symbols in GNU as are prefixed with '_' now.
|
159
194
|
o removed scons build support
|
160
195
|
|
161
|
-
Version 0.2
|
196
|
+
Version 0.2 (2008/05/18)
|
162
197
|
o added scons build support
|
163
198
|
o configure variables all prefix CONFIG_* now
|
164
199
|
o configure variable INSTALL_DIR changed to INSTALL_PREFIX
|
165
200
|
o configure (shell version) option "--prefix" changed to "--prefix=<path>"
|
166
201
|
|
167
|
-
Version 0.1
|
202
|
+
Version 0.1 (2008/01/23)
|
168
203
|
o initial release
|
169
204
|
|
data/dyncall/LICENSE
CHANGED
@@ -1,4 +1,7 @@
|
|
1
|
-
|
1
|
+
If not stated otherwise inside a file, all files here are distributed in
|
2
|
+
terms of:
|
3
|
+
|
4
|
+
Copyright (c) 2007-2015 Daniel Adler <dadler@uni-goettingen.de>,
|
2
5
|
Tassilo Philipp <tphilipp@potion-studios.com>
|
3
6
|
|
4
7
|
Permission to use, copy, modify, and distribute this software for any
|
data/dyncall/Makefile.embedded
CHANGED
@@ -62,10 +62,14 @@ ios-os:
|
|
62
62
|
IOS_PLATFORM="OS" ${MAKE_CMD} ios
|
63
63
|
# NOTE iOS 6.1 does not support armv6 (has no libs)
|
64
64
|
ios61-os:
|
65
|
-
IOS_SDK="6.1" IOS_ARCH="-arch armv7"
|
65
|
+
IOS_SDK="6.1" IOS_ARCH="-arch armv7" ${MAKE_CMD} ios-os
|
66
66
|
ios61-os-no-thumb:
|
67
|
-
IOS_SDK="6.1" IOS_ARCH="-arch armv7 -mno-thumb"
|
67
|
+
IOS_SDK="6.1" IOS_ARCH="-arch armv7 -mno-thumb" ${MAKE_CMD} ios-os
|
68
68
|
ios61-sim:
|
69
|
-
IOS_SDK="6.1" IOS_ARCH="-arch i386"
|
69
|
+
IOS_SDK="6.1" IOS_ARCH="-arch i386" ${MAKE_CMD} ios-sim
|
70
|
+
ios83-os-universal:
|
71
|
+
IOS_SDK="8.3" IOS_ARCH="-arch armv7 -arch arm64" ${MAKE_CMD} ios-os
|
72
|
+
ios83-sim:
|
73
|
+
IOS_SDK="8.3" IOS_ARCH="-arch i386" ${MAKE_CMD} ios-sim
|
70
74
|
|
71
75
|
.PHONY: all tests clean install bsd linux linux64 minix-gcc mingw32 osx osx-universal sun sun-64bit sun-gcc sun-gcc-64bit
|
data/dyncall/README
CHANGED
@@ -10,17 +10,20 @@ It comprises three independent components, available as C libraries, namely:
|
|
10
10
|
- 'dynload' for loading code.
|
11
11
|
|
12
12
|
The package provides abstractions to the Application Binary Interface
|
13
|
-
of various hardware platforms such as
|
14
|
-
and
|
13
|
+
of various hardware platforms such as x86, AMD64, ARM32/64, PowerPC32/64,
|
14
|
+
MIPS32/64 and SPARC32/64.
|
15
15
|
|
16
|
-
Our releases are
|
16
|
+
Our releases are thoroughly tested across all supported platforms using a
|
17
|
+
flexible test suite.
|
17
18
|
|
18
19
|
A typical application for the use of dyncall is the back-end of a FFI
|
19
20
|
(foreign function interface) for scripting languages to connect with
|
20
21
|
the C/C++ world.
|
21
22
|
|
22
|
-
The binary footprint of the package is approx. 20 kb
|
23
|
-
|
23
|
+
The binary footprint of the package is approx. 10-20 kb, depending on
|
24
|
+
the platform.
|
25
|
+
Besides the test suite already mentioned, comprehensive documentation is
|
26
|
+
available.
|
24
27
|
|
25
28
|
|
26
29
|
Building the libraries
|
@@ -35,14 +38,14 @@ Prequisites:
|
|
35
38
|
Supported Architectures and ABIs:
|
36
39
|
---------------------------------
|
37
40
|
|
38
|
-
- x86 32/64-bit
|
39
|
-
- ARM AArch32
|
40
|
-
- MIPS 32/64-bit
|
41
|
-
- PowerPC 32-bit
|
42
|
-
- Sparc 32/64-bit
|
41
|
+
- x86 32/64-bit (cdecl, fastcall, stdcall, C++ this calls, syscalls, plan9)
|
42
|
+
- ARM AArch32/64 (32: ARM/Thumb mode, v4t-v7, oabi/eabi, soft/hardfloat ABIs; 64: AAPCS64)
|
43
|
+
- MIPS 32/64-bit (o32, n64, eabi)
|
44
|
+
- PowerPC 32/64-bit (32: Mac OS X, System V; 64: System V little and big endian ELF ABI)
|
45
|
+
- Sparc 32/64-bit (v7/8 and v9)
|
43
46
|
|
44
|
-
NOTE: Callback support is currently available on
|
45
|
-
x86-32/64, arm32 softfloat ABIs and
|
47
|
+
NOTE: Callback support is currently available on
|
48
|
+
x86-32/64, arm32 softfloat ABIs, arm64, PPC64 and PPC32 Linux/OS X.
|
46
49
|
|
47
50
|
Supported Operating Systems:
|
48
51
|
----------------------------
|
@@ -100,6 +103,12 @@ Building on Windows
|
|
100
103
|
See doc/README.Windows
|
101
104
|
|
102
105
|
|
106
|
+
Platform-specific build details
|
107
|
+
-------------------------------
|
108
|
+
|
109
|
+
See doc/README.*
|
110
|
+
|
111
|
+
|
103
112
|
Building the manual
|
104
113
|
-------------------
|
105
114
|
|
@@ -108,6 +117,6 @@ Make sure pdflatex is installed and run
|
|
108
117
|
$ make docs
|
109
118
|
|
110
119
|
|
111
|
-
Please refer to http://www.dyncall.org, dyncall(3), the dyncall
|
112
|
-
platform-specific READMEs under doc/ for more information.
|
120
|
+
Please refer to http://www.dyncall.org, dyncall(3), dyncallback(3), the dyncall
|
121
|
+
manual and platform-specific READMEs under doc/ for more information.
|
113
122
|
|
data/dyncall/ToDo
CHANGED
@@ -1,23 +1,24 @@
|
|
1
|
-
0
|
1
|
+
1.0:
|
2
2
|
----
|
3
|
+
- autovar was never really pushed all the way through and still plays second
|
4
|
+
fiddle to dyncall_macros.h, clean this all up, eventually (Tassilo: for now, I
|
5
|
+
removed out of sync files to avoid confusion; but still probably duped code)
|
6
|
+
- ppc32 callback fixes on bsd
|
3
7
|
- make install should install manpages
|
4
8
|
- mailing list announcements (html email?)
|
5
|
-
- Website:
|
6
|
-
* platform matrix (wie im Handbuch oder Daniels Disse)
|
7
9
|
- fix for NDS:
|
8
10
|
* ARM:
|
9
11
|
- callback_plain retval wrong (not only platform)
|
10
12
|
* THUMB:
|
11
13
|
- ellipsis (might be test itself, not respecting fixed part of args)
|
12
|
-
- retvals of call_suite (maybe all retvals, in general)
|
13
14
|
- callback_plain retval
|
14
15
|
- callf
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
-
|
20
|
-
|
16
|
+
- fix Minix/x86 callbacks (see callback_suite)
|
17
|
+
- armhf ellipsis: fix weirdness with long long as first ... arg
|
18
|
+
- add portable "make install"
|
19
|
+
- support Solaris11 CFLAGS with -D_FILE_OFFSET_BITS=64
|
20
|
+
- make sure selinux works (esp. regarding NX bits, asm might need (or similar): .section .note.GNU-stack,"",@progbits)
|
21
|
+
Daniel has a patch for it, if needed, implementing allocwx with two memory blocks, one for w^x, mmaped to one for r|x
|
21
22
|
|
22
23
|
portasm:
|
23
24
|
--------
|
@@ -25,16 +26,16 @@ portasm:
|
|
25
26
|
|
26
27
|
dyncall:
|
27
28
|
--------
|
28
|
-
- port ppc64
|
29
29
|
- support for return values: aggregate return values
|
30
30
|
- support for argument values: structures, half-precision, vector types, long double
|
31
31
|
- varargs for mips (might exist, but test all ABIs)
|
32
32
|
- consider automatic type-promotion for arguments passed through DC_CALL_C_ELLIPSIS_VARARGS;
|
33
33
|
this would make it easier to just pass arguments instead of having to know about the C
|
34
34
|
type promotions
|
35
|
-
-
|
36
|
-
|
37
|
-
|
35
|
+
- syscalls for x64
|
36
|
+
* bsd
|
37
|
+
* linux
|
38
|
+
- other syscalls
|
38
39
|
|
39
40
|
dynload:
|
40
41
|
--------
|
@@ -49,8 +50,8 @@ dynload:
|
|
49
50
|
dyncallback:
|
50
51
|
------------
|
51
52
|
- callback_plain's return value not correct anymore on NDS (maybe just broken testcode?)
|
52
|
-
- add MIPS callbacks
|
53
|
-
- finish PPC32 callbacks (see bugs section, below)
|
53
|
+
- add MIPS callbacks for eabi, n32, o32 (thunks are working)
|
54
|
+
- finish PPC32 callbacks (see bugs section, below, BSD not working)
|
54
55
|
|
55
56
|
bindings:
|
56
57
|
---------
|
@@ -60,12 +61,13 @@ bindings:
|
|
60
61
|
- bring python up to latest
|
61
62
|
- add pydoc for python
|
62
63
|
- add manpage for shdc
|
63
|
-
-
|
64
|
+
- expose callf-convenience functions to go
|
64
65
|
- add godoc for godc
|
65
66
|
- bring java up to latest
|
66
67
|
- add javadoc to java
|
67
68
|
- add more bindings
|
68
|
-
- add callback support for go, java, lua, python and ruby (and shell? how?)
|
69
|
+
- add callback support for erlang, go, java, lua, python and ruby (and shell? how?)
|
70
|
+
- add call-conv-mode-support for rbdc through signature
|
69
71
|
|
70
72
|
manual:
|
71
73
|
-------
|
@@ -83,12 +85,11 @@ urgent issues:
|
|
83
85
|
- Solaris/gmake build doesn't build dynload and tests anymore (maybe not even dyncallback)
|
84
86
|
- test arm32/ATPCS/THUMB (and then change Status in doc Appendix)
|
85
87
|
- look over code and fix TODO or @@@ marks
|
86
|
-
- add
|
88
|
+
- add ppc-support to doc (both, 32 and 64, as well as little and big endian remarks)
|
87
89
|
|
88
90
|
nice to have:
|
89
91
|
-------------
|
90
92
|
- update: microsoft visual c++ build files - integrate all test suites in solution file
|
91
|
-
- maybe rename DC__Arch_PowerPC to ...PPC32 for coherency reasons (...PPC64)?
|
92
93
|
- consistency: on x64 platforms: make both ABIs available ('win64','sysv') for all x64 OS ports
|
93
94
|
- microsoft build enhancement: autodetect assembly via C preprocessor (like with .S gcc files)
|
94
95
|
- test/thunk: some platforms do not allow for allocation of executable code on heap and stack --
|
@@ -96,19 +97,23 @@ nice to have:
|
|
96
97
|
|
97
98
|
bugs:
|
98
99
|
-----
|
99
|
-
-
|
100
|
+
- callconv set specifically for platform that has only one (default) excepts for some
|
101
|
+
platforms, eg. setting X64_sysv on amd64/Linux - keeping cdecl which is the same in
|
102
|
+
this case, works
|
103
|
+
- callbacks on ppc32 only work on linux and apple (osx abi), but not BSD
|
100
104
|
- vararg function calls don't work for ARM THUMB mode (Daniel's new interface for modesetting for varag
|
101
105
|
args should be used); adapt test/ellipsis and/or retest
|
102
106
|
|
103
107
|
missing implementations (descending priority):
|
104
108
|
----------------------------------------------
|
105
|
-
-
|
109
|
+
- riscv
|
106
110
|
- itanium
|
107
111
|
- 68k, 88k, 6502, etc.
|
108
112
|
- alpha
|
109
113
|
- superh
|
110
114
|
- cell
|
111
115
|
- blackfin
|
116
|
+
- s/390
|
112
117
|
- z80
|
113
118
|
- hppa
|
114
119
|
- vax
|
@@ -118,9 +123,3 @@ missing implementations (descending priority):
|
|
118
123
|
- arc
|
119
124
|
- seaforth
|
120
125
|
|
121
|
-
available hardware for outstanding ports:
|
122
|
-
-----------------------------------------
|
123
|
-
- 68k: Tassilo's old Palm m100 (MC68EZ328 (16MHz))
|
124
|
-
- sh4: Tassilo's Dreamcast
|
125
|
-
- sigmatel stmp3550b: Daniel's iPod Nano
|
126
|
-
|
@@ -6,8 +6,8 @@
|
|
6
6
|
Description:
|
7
7
|
License:
|
8
8
|
|
9
|
-
Copyright (c) 2011 Daniel Adler <dadler@uni-goettingen.de>,
|
10
|
-
|
9
|
+
Copyright (c) 2011-2015 Daniel Adler <dadler@uni-goettingen.de>,
|
10
|
+
Tassilo Philipp <tphilipp@potion-studios.com>
|
11
11
|
|
12
12
|
Permission to use, copy, modify, and distribute this software for any
|
13
13
|
purpose with or without fee is hereby granted, provided that the above
|
@@ -22,6 +22,7 @@
|
|
22
22
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
23
23
|
|
24
24
|
*/
|
25
|
+
|
25
26
|
#ifndef AUTOVAR_ABI_H
|
26
27
|
#define AUTOVAR_ABI_H
|
27
28
|
|
@@ -6,8 +6,8 @@
|
|
6
6
|
Description:
|
7
7
|
License:
|
8
8
|
|
9
|
-
Copyright (c) 2011 Daniel Adler <dadler@uni-goettingen.de>,
|
10
|
-
|
9
|
+
Copyright (c) 2011-2015 Daniel Adler <dadler@uni-goettingen.de>,
|
10
|
+
Tassilo Philipp <tphilipp@potion-studios.com>
|
11
11
|
|
12
12
|
Permission to use, copy, modify, and distribute this software for any
|
13
13
|
purpose with or without fee is hereby granted, provided that the above
|
@@ -22,23 +22,26 @@
|
|
22
22
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
23
23
|
|
24
24
|
*/
|
25
|
+
|
25
26
|
#ifndef AUTOVAR_ARCH_H
|
26
27
|
#define AUTOVAR_ARCH_H
|
27
28
|
|
28
29
|
/* Check architecture. */
|
29
|
-
#if defined(
|
30
|
-
# define ARCH_X86
|
31
|
-
#elif defined(_M_X64_) || defined(_M_AMD64) || defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64)
|
30
|
+
#if defined(_M_X64_) || defined(_M_AMD64) || defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64)
|
32
31
|
# define ARCH_X64
|
32
|
+
#elif defined(_M_IX86) || defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) || defined(__386__) || defined(__i386)
|
33
|
+
# define ARCH_X86
|
33
34
|
#elif defined(_M_IA64) || defined(__ia64__)
|
34
35
|
# define ARCH_IA64
|
35
36
|
#elif defined(_M_PPC) || defined(__powerpc__) || defined(__powerpc) || defined(__POWERPC__) || defined(__ppc__) || defined(__power__)
|
36
|
-
#
|
37
|
-
#
|
38
|
-
#
|
37
|
+
# if defined(__ppc64__) || defined(_ARCH_PPC64) || defined(__power64__) || defined(__powerpc64__)
|
38
|
+
# define ARCH_PPC64
|
39
|
+
# else
|
40
|
+
# define ARCH_PPC
|
41
|
+
# endif
|
39
42
|
#elif defined(__mips64__) || defined(__mips64)
|
40
43
|
# define ARCH_MIPS64
|
41
|
-
#elif defined(_M_MRX000) || defined(__mips__)
|
44
|
+
#elif defined(_M_MRX000) || defined(__mips__) || defined(__mips) || defined(_mips)
|
42
45
|
# define ARCH_MIPS
|
43
46
|
#elif defined(__arm__)
|
44
47
|
# define ARCH_ARM
|
@@ -47,7 +50,7 @@
|
|
47
50
|
# endif
|
48
51
|
#elif defined(__sh__)
|
49
52
|
# define ARCH_SH
|
50
|
-
#elif defined(__sparcv9) || ( defined(__sparc) && defined(__arch64__) )
|
53
|
+
#elif defined(__sparcv9) || defined(__sparc64__) || ( defined(__sparc) && defined(__arch64__) )
|
51
54
|
# define ARCH_SPARC64
|
52
55
|
#elif defined(__sparc)
|
53
56
|
# define ARCH_SPARC
|