koffi 1.1.2 → 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CMakeLists.txt +23 -19
  2. package/README.md +16 -27
  3. package/benchmark/CMakeLists.txt +11 -3
  4. package/benchmark/raylib_cc.cc +9 -9
  5. package/build/qemu/1.1.5/koffi_darwin_x64.tar.gz +0 -0
  6. package/build/qemu/1.1.5/koffi_freebsd_arm64.tar.gz +0 -0
  7. package/build/qemu/1.1.5/koffi_freebsd_ia32.tar.gz +0 -0
  8. package/build/qemu/1.1.5/koffi_freebsd_x64.tar.gz +0 -0
  9. package/build/qemu/1.1.5/koffi_linux_arm.tar.gz +0 -0
  10. package/build/qemu/1.1.5/koffi_linux_arm64.tar.gz +0 -0
  11. package/build/qemu/1.1.5/koffi_linux_ia32.tar.gz +0 -0
  12. package/build/qemu/1.1.5/koffi_linux_riscv64.tar.gz +0 -0
  13. package/build/qemu/1.1.5/koffi_linux_x64.tar.gz +0 -0
  14. package/build/qemu/1.1.5/koffi_openbsd_ia32.tar.gz +0 -0
  15. package/build/qemu/1.1.5/koffi_openbsd_x64.tar.gz +0 -0
  16. package/build/qemu/1.1.5/koffi_win32_ia32.tar.gz +0 -0
  17. package/build/qemu/1.1.5/koffi_win32_x64.tar.gz +0 -0
  18. package/package.json +2 -2
  19. package/qemu/qemu.js +18 -10
  20. package/qemu/registry/machines.json +138 -3
  21. package/qemu/registry/sha256sum.txt +27 -12
  22. package/src/abi_arm32.cc +29 -16
  23. package/src/abi_arm32_fwd.S +1 -1
  24. package/src/abi_arm64.cc +33 -17
  25. package/src/abi_arm64_fwd.S +1 -1
  26. package/src/abi_arm64_fwd.asm +107 -0
  27. package/src/abi_riscv64.cc +468 -0
  28. package/src/abi_riscv64_fwd.S +129 -0
  29. package/src/abi_x64_sysv.cc +9 -10
  30. package/src/abi_x64_sysv_fwd.S +113 -1
  31. package/src/abi_x64_win.cc +5 -8
  32. package/src/abi_x86.cc +11 -6
  33. package/src/call.cc +6 -18
  34. package/src/call.hh +13 -23
  35. package/src/ffi.cc +87 -25
  36. package/src/ffi.hh +14 -4
  37. package/src/parser.cc +18 -6
  38. package/src/util.cc +26 -57
  39. package/src/util.hh +17 -1
  40. package/test/CMakeLists.txt +4 -1
  41. package/test/misc.c +34 -0
  42. package/vendor/_patches/glfw_001_fix_openbsd_xlib_soname.patch +145 -0
  43. package/vendor/libcc/libcc.cc +7 -7
  44. package/vendor/libcc/libcc.hh +8 -2
  45. package/vendor/raylib/src/external/glfw/src/egl_context.c +6 -0
  46. package/vendor/raylib/src/external/glfw/src/osmesa_context.c +2 -0
  47. package/vendor/raylib/src/external/glfw/src/vulkan.c +2 -0
  48. package/vendor/raylib/src/external/glfw/src/x11_init.c +20 -0
  49. package/build/qemu/1.1.2/koffi_darwin_x64.tar.gz +0 -0
  50. package/build/qemu/1.1.2/koffi_freebsd_arm64.tar.gz +0 -0
  51. package/build/qemu/1.1.2/koffi_freebsd_ia32.tar.gz +0 -0
  52. package/build/qemu/1.1.2/koffi_freebsd_x64.tar.gz +0 -0
  53. package/build/qemu/1.1.2/koffi_linux_arm.tar.gz +0 -0
  54. package/build/qemu/1.1.2/koffi_linux_arm64.tar.gz +0 -0
  55. package/build/qemu/1.1.2/koffi_linux_ia32.tar.gz +0 -0
  56. package/build/qemu/1.1.2/koffi_linux_x64.tar.gz +0 -0
  57. package/build/qemu/1.1.2/koffi_win32_ia32.tar.gz +0 -0
  58. package/build/qemu/1.1.2/koffi_win32_x64.tar.gz +0 -0
@@ -35,7 +35,7 @@
35
35
  #include <utility>
36
36
  #if defined(_WIN32)
37
37
  #include <intrin.h>
38
- #elif !defined(__APPLE__) && (!defined(__linux__) || defined(__GLIBC__))
38
+ #elif !defined(__APPLE__) && (!defined(__linux__) || defined(__GLIBC__)) && __has_include(<ucontext.h>)
39
39
  #define RG_FIBER_USE_UCONTEXT
40
40
  #include <ucontext.h>
41
41
  #else
@@ -54,6 +54,7 @@
54
54
  #pragma intrinsic(__rdtsc)
55
55
  #endif
56
56
 
57
+ struct sigaction;
57
58
  struct BrotliEncoderStateStruct;
58
59
 
59
60
  namespace RG {
@@ -93,7 +94,7 @@ extern "C" const char *FelixTarget;
93
94
  extern "C" const char *FelixVersion;
94
95
  extern "C" const char *FelixCompiler;
95
96
 
96
- #if defined(__x86_64__) || defined(_M_X64) || defined(__aarch64__)
97
+ #if defined(__x86_64__) || defined(_M_X64) || defined(__aarch64__) || __riscv_xlen == 64
97
98
  typedef int64_t Size;
98
99
  #define RG_SIZE_MAX INT64_MAX
99
100
  #elif defined(_WIN32) || defined(__APPLE__) || defined(__unix__)
@@ -115,6 +116,7 @@ extern "C" const char *FelixCompiler;
115
116
  #if ULLONG_MAX != 0xFFFFFFFFFFFFFFFFull
116
117
  #error This code base is not designed to support non-64-bits long long types
117
118
  #endif
119
+ static_assert(sizeof(double) == 8, "This code base is not designed to support single-precision double floats");
118
120
 
119
121
  #define RG_STRINGIFY_(a) #a
120
122
  #define RG_STRINGIFY(a) RG_STRINGIFY_(a)
@@ -195,6 +197,8 @@ extern "C" void AssertMessage(const char *filename, int line, const char *cond);
195
197
  #define RG_DEBUG_BREAK() __asm__ __volatile__(".inst 0xd4200000")
196
198
  #elif defined(__arm__)
197
199
  #define RG_DEBUG_BREAK() __asm__ __volatile__(".inst 0xe7f001f0")
200
+ #elif defined(__riscv)
201
+ #define RG_DEBUG_BREAK() __asm__ __volatile__("ebreak")
198
202
  #endif
199
203
 
200
204
  #define RG_CRITICAL(Cond, ...) \
@@ -3929,6 +3933,8 @@ enum class PipeMode {
3929
3933
  bool CreateOverlappedPipe(bool overlap0, bool overlap1, PipeMode mode, void *out_handles[2]); // HANDLE
3930
3934
  void CloseHandleSafe(void **handle_ptr); // HANDLE
3931
3935
  #else
3936
+ void SetSignalHandler(int signal, void (*func)(int), struct sigaction *prev = nullptr);
3937
+
3932
3938
  bool CreatePipe(int pfd[2]);
3933
3939
  void CloseDescriptorSafe(int *fd_ptr);
3934
3940
  #endif
@@ -316,6 +316,8 @@ GLFWbool _glfwInitEGL(void)
316
316
  "libEGL.dylib",
317
317
  #elif defined(__CYGWIN__)
318
318
  "libEGL-1.so",
319
+ #elif defined(__OpenBSD__) || defined(__NetBSD__)
320
+ "libEGL.so",
319
321
  #else
320
322
  "libEGL.so.1",
321
323
  #endif
@@ -686,6 +688,8 @@ GLFWbool _glfwCreateContextEGL(_GLFWwindow* window,
686
688
  "libGLES_CM.dll",
687
689
  #elif defined(_GLFW_COCOA)
688
690
  "libGLESv1_CM.dylib",
691
+ #elif defined(__OpenBSD__) || defined(__NetBSD__)
692
+ "libGLESv1_CM.so",
689
693
  #else
690
694
  "libGLESv1_CM.so.1",
691
695
  "libGLES_CM.so.1",
@@ -703,6 +707,8 @@ GLFWbool _glfwCreateContextEGL(_GLFWwindow* window,
703
707
  "libGLESv2.dylib",
704
708
  #elif defined(__CYGWIN__)
705
709
  "libGLESv2-2.so",
710
+ #elif defined(__OpenBSD__) || defined(__NetBSD__)
711
+ "libGLESv2.so",
706
712
  #else
707
713
  "libGLESv2.so.2",
708
714
  #endif
@@ -124,6 +124,8 @@ GLFWbool _glfwInitOSMesa(void)
124
124
  "libOSMesa.8.dylib",
125
125
  #elif defined(__CYGWIN__)
126
126
  "libOSMesa-8.so",
127
+ #elif defined(__OpenBSD__) || defined(__NetBSD__)
128
+ "libOSMesa.so",
127
129
  #else
128
130
  "libOSMesa.so.8",
129
131
  "libOSMesa.so.6",
@@ -59,6 +59,8 @@ GLFWbool _glfwInitVulkan(int mode)
59
59
  _glfw.vk.handle = _glfw_dlopen("libvulkan.1.dylib");
60
60
  if (!_glfw.vk.handle)
61
61
  _glfw.vk.handle = _glfwLoadLocalVulkanLoaderNS();
62
+ #elif defined(__OpenBSD__) || defined(__NetBSD__)
63
+ _glfw.vk.handle = _glfw_dlopen("libvulkan.so");
62
64
  #else
63
65
  _glfw.vk.handle = _glfw_dlopen("libvulkan.so.1");
64
66
  #endif
@@ -601,7 +601,11 @@ static void detectEWMH(void)
601
601
  //
602
602
  static GLFWbool initExtensions(void)
603
603
  {
604
+ #if defined(__OpenBSD__) || defined(__NetBSD__)
605
+ _glfw.x11.vidmode.handle = _glfw_dlopen("libXxf86vm.so");
606
+ #else
604
607
  _glfw.x11.vidmode.handle = _glfw_dlopen("libXxf86vm.so.1");
608
+ #endif
605
609
  if (_glfw.x11.vidmode.handle)
606
610
  {
607
611
  _glfw.x11.vidmode.QueryExtension = (PFN_XF86VidModeQueryExtension)
@@ -621,6 +625,8 @@ static GLFWbool initExtensions(void)
621
625
 
622
626
  #if defined(__CYGWIN__)
623
627
  _glfw.x11.xi.handle = _glfw_dlopen("libXi-6.so");
628
+ #elif defined(__OpenBSD__) || defined(__NetBSD__)
629
+ _glfw.x11.xi.handle = _glfw_dlopen("libXi.so");
624
630
  #else
625
631
  _glfw.x11.xi.handle = _glfw_dlopen("libXi.so.6");
626
632
  #endif
@@ -651,6 +657,8 @@ static GLFWbool initExtensions(void)
651
657
 
652
658
  #if defined(__CYGWIN__)
653
659
  _glfw.x11.randr.handle = _glfw_dlopen("libXrandr-2.so");
660
+ #elif defined(__OpenBSD__) || defined(__NetBSD__)
661
+ _glfw.x11.randr.handle = _glfw_dlopen("libXrandr.so");
654
662
  #else
655
663
  _glfw.x11.randr.handle = _glfw_dlopen("libXrandr.so.2");
656
664
  #endif
@@ -743,6 +751,8 @@ static GLFWbool initExtensions(void)
743
751
 
744
752
  #if defined(__CYGWIN__)
745
753
  _glfw.x11.xcursor.handle = _glfw_dlopen("libXcursor-1.so");
754
+ #elif defined(__OpenBSD__) || defined(__NetBSD__)
755
+ _glfw.x11.xcursor.handle = _glfw_dlopen("libXcursor.so");
746
756
  #else
747
757
  _glfw.x11.xcursor.handle = _glfw_dlopen("libXcursor.so.1");
748
758
  #endif
@@ -764,6 +774,8 @@ static GLFWbool initExtensions(void)
764
774
 
765
775
  #if defined(__CYGWIN__)
766
776
  _glfw.x11.xinerama.handle = _glfw_dlopen("libXinerama-1.so");
777
+ #elif defined(__OpenBSD__) || defined(__NetBSD__)
778
+ _glfw.x11.xinerama.handle = _glfw_dlopen("libXinerama.so");
767
779
  #else
768
780
  _glfw.x11.xinerama.handle = _glfw_dlopen("libXinerama.so.1");
769
781
  #endif
@@ -817,6 +829,8 @@ static GLFWbool initExtensions(void)
817
829
  {
818
830
  #if defined(__CYGWIN__)
819
831
  _glfw.x11.x11xcb.handle = _glfw_dlopen("libX11-xcb-1.so");
832
+ #elif defined(__OpenBSD__) || defined(__NetBSD__)
833
+ _glfw.x11.x11xcb.handle = _glfw_dlopen("libX11-xcb.so");
820
834
  #else
821
835
  _glfw.x11.x11xcb.handle = _glfw_dlopen("libX11-xcb.so.1");
822
836
  #endif
@@ -830,6 +844,8 @@ static GLFWbool initExtensions(void)
830
844
 
831
845
  #if defined(__CYGWIN__)
832
846
  _glfw.x11.xrender.handle = _glfw_dlopen("libXrender-1.so");
847
+ #elif defined(__OpenBSD__) || defined(__NetBSD__)
848
+ _glfw.x11.xrender.handle = _glfw_dlopen("libXrender.so");
833
849
  #else
834
850
  _glfw.x11.xrender.handle = _glfw_dlopen("libXrender.so.1");
835
851
  #endif
@@ -857,6 +873,8 @@ static GLFWbool initExtensions(void)
857
873
 
858
874
  #if defined(__CYGWIN__)
859
875
  _glfw.x11.xshape.handle = _glfw_dlopen("libXext-6.so");
876
+ #elif defined(__OpenBSD__) || defined(__NetBSD__)
877
+ _glfw.x11.xshape.handle = _glfw_dlopen("libXext.so");
860
878
  #else
861
879
  _glfw.x11.xshape.handle = _glfw_dlopen("libXext.so.6");
862
880
  #endif
@@ -1120,6 +1138,8 @@ int _glfwPlatformInit(void)
1120
1138
 
1121
1139
  #if defined(__CYGWIN__)
1122
1140
  _glfw.x11.xlib.handle = _glfw_dlopen("libX11-6.so");
1141
+ #elif defined(__OpenBSD__) || defined(__NetBSD__)
1142
+ _glfw.x11.xlib.handle = _glfw_dlopen("libX11.so");
1123
1143
  #else
1124
1144
  _glfw.x11.xlib.handle = _glfw_dlopen("libX11.so.6");
1125
1145
  #endif