From e7e9530eb86a1d3e31ca782ef901156f923f1feb Mon Sep 17 00:00:00 2001 From: luoliwoshang <2643523683@qq.com> Date: Wed, 11 Jun 2025 21:02:32 +0800 Subject: [PATCH] some wrap to cpp --- runtime/internal/clite/ffi/_wrap/{libffi.c => libffi.cpp} | 4 ++++ runtime/internal/clite/ffi/ffi_other.go | 2 +- runtime/internal/clite/libuv/_wrap/{libuv.c => libuv.cpp} | 6 +++++- runtime/internal/clite/libuv/libuv.go | 2 +- .../internal/clite/openssl/_wrap/{openssl.c => openssl.cpp} | 4 ++++ runtime/internal/clite/openssl/openssl.go | 2 +- .../lib/internal/cpu/_wrap/{cpu_x86.c => cpu_x86.cpp} | 5 +++++ runtime/internal/lib/internal/cpu/cpu_x86.go | 2 +- 8 files changed, 22 insertions(+), 5 deletions(-) rename runtime/internal/clite/ffi/_wrap/{libffi.c => libffi.cpp} (87%) rename runtime/internal/clite/libuv/_wrap/{libuv.c => libuv.cpp} (82%) rename runtime/internal/clite/openssl/_wrap/{openssl.c => openssl.cpp} (84%) rename runtime/internal/lib/internal/cpu/_wrap/{cpu_x86.c => cpu_x86.cpp} (97%) diff --git a/runtime/internal/clite/ffi/_wrap/libffi.c b/runtime/internal/clite/ffi/_wrap/libffi.cpp similarity index 87% rename from runtime/internal/clite/ffi/_wrap/libffi.c rename to runtime/internal/clite/ffi/_wrap/libffi.cpp index 53fa1c70..59b4cfd8 100644 --- a/runtime/internal/clite/ffi/_wrap/libffi.c +++ b/runtime/internal/clite/ffi/_wrap/libffi.cpp @@ -1,5 +1,9 @@ #include +extern "C" { + void *llog_ffi_closure_alloc(void **code) { return ffi_closure_alloc(sizeof(ffi_closure), code); } + +} diff --git a/runtime/internal/clite/ffi/ffi_other.go b/runtime/internal/clite/ffi/ffi_other.go index 6953dfdc..06fef2f3 100644 --- a/runtime/internal/clite/ffi/ffi_other.go +++ b/runtime/internal/clite/ffi/ffi_other.go @@ -10,7 +10,7 @@ import ( const ( LLGoPackage = "link: $(pkg-config --libs libffi); -lffi" - LLGoFiles = "$(pkg-config --cflags libffi): _wrap/libffi.c" + LLGoFiles = "$(pkg-config --cflags libffi): _wrap/libffi.cpp" ) /* diff --git a/runtime/internal/clite/libuv/_wrap/libuv.c b/runtime/internal/clite/libuv/_wrap/libuv.cpp similarity index 82% rename from runtime/internal/clite/libuv/_wrap/libuv.c rename to runtime/internal/clite/libuv/_wrap/libuv.cpp index d3d51448..30114341 100644 --- a/runtime/internal/clite/libuv/_wrap/libuv.c +++ b/runtime/internal/clite/libuv/_wrap/libuv.cpp @@ -1,5 +1,9 @@ #include +extern "C" { + int uv_tcp_get_io_watcher_fd (uv_tcp_t* handle) { return handle->io_watcher.fd; -} \ No newline at end of file +} + +} diff --git a/runtime/internal/clite/libuv/libuv.go b/runtime/internal/clite/libuv/libuv.go index b781f1b5..b9dd6424 100644 --- a/runtime/internal/clite/libuv/libuv.go +++ b/runtime/internal/clite/libuv/libuv.go @@ -9,7 +9,7 @@ import ( const ( LLGoPackage = "link: $(pkg-config --libs libuv); -luv" - LLGoFiles = "$(pkg-config --cflags libuv): _wrap/libuv.c" + LLGoFiles = "$(pkg-config --cflags libuv): _wrap/libuv.cpp" ) // ---------------------------------------------- diff --git a/runtime/internal/clite/openssl/_wrap/openssl.c b/runtime/internal/clite/openssl/_wrap/openssl.cpp similarity index 84% rename from runtime/internal/clite/openssl/_wrap/openssl.c rename to runtime/internal/clite/openssl/_wrap/openssl.cpp index 7cc5bbdb..8d7c8680 100644 --- a/runtime/internal/clite/openssl/_wrap/openssl.c +++ b/runtime/internal/clite/openssl/_wrap/openssl.cpp @@ -1,5 +1,9 @@ #include +extern "C" { + void opensslFree(void *ptr) { OPENSSL_free(ptr); } + +} \ No newline at end of file diff --git a/runtime/internal/clite/openssl/openssl.go b/runtime/internal/clite/openssl/openssl.go index df237c85..8bca7d28 100644 --- a/runtime/internal/clite/openssl/openssl.go +++ b/runtime/internal/clite/openssl/openssl.go @@ -25,7 +25,7 @@ import ( // ----------------------------------------------------------------------------- const ( - LLGoFiles = "$(pkg-config --cflags openssl): _wrap/openssl.c" + LLGoFiles = "$(pkg-config --cflags openssl): _wrap/openssl.cpp" LLGoPackage = "link: $(pkg-config --libs openssl); -lssl -lcrypto" ) diff --git a/runtime/internal/lib/internal/cpu/_wrap/cpu_x86.c b/runtime/internal/lib/internal/cpu/_wrap/cpu_x86.cpp similarity index 97% rename from runtime/internal/lib/internal/cpu/_wrap/cpu_x86.c rename to runtime/internal/lib/internal/cpu/_wrap/cpu_x86.cpp index 3756ee17..1305c86c 100644 --- a/runtime/internal/lib/internal/cpu/_wrap/cpu_x86.c +++ b/runtime/internal/lib/internal/cpu/_wrap/cpu_x86.cpp @@ -1,3 +1,6 @@ + +extern "C" { + #if defined(__GNUC__) || defined(__clang__) void llgo_getcpuid(unsigned int eax, unsigned int ecx, unsigned int *a, unsigned int *b, @@ -19,3 +22,5 @@ void llgo_getcpuid(unsigned int eax, unsigned int ecx, #else #error This code requires GCC or Clang #endif + +} \ No newline at end of file diff --git a/runtime/internal/lib/internal/cpu/cpu_x86.go b/runtime/internal/lib/internal/cpu/cpu_x86.go index 46022c42..47374b9e 100644 --- a/runtime/internal/lib/internal/cpu/cpu_x86.go +++ b/runtime/internal/lib/internal/cpu/cpu_x86.go @@ -10,7 +10,7 @@ import ( const ( LLGoPackage = "link" - LLGoFiles = "_wrap/cpu_x86.c" + LLGoFiles = "_wrap/cpu_x86.cpp" ) //go:linkname c_getcpuid C.llgo_getcpuid