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