Remove rz-libswift to avoid embedding C++ projects. (#5320)

* Remove rz-libswift to avoid embedding C++ projects.
* Fix test
This commit is contained in:
Giovanni 2025-08-27 10:38:10 +08:00 committed by GitHub
parent 255e3a3451
commit d933ccc4e5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 13 additions and 49 deletions

View file

@ -122,8 +122,7 @@ jobs:
build_system: meson
compiler: clang
cflags: "-DASAN=1 -DRZ_ASSERT_STDOUT=1 -fno-sanitize=function"
# deroad: i had to remove `-Db_lundef=false -Db_sanitize=address` because it was crashing in a C++ library
meson_options: -Dbuildtype=debugoptimized -Db_sanitize=undefined --werror
meson_options: -Dbuildtype=debugoptimized -Db_lundef=false -Db_sanitize=address,undefined --werror
asan: true
asan_options: detect_leaks=0,allocator_may_return_null=1
run_tests: true

View file

@ -5,7 +5,6 @@
#include <rz_demangler.h>
#include <rz_util.h>
#include <rz_libdemangle.h>
#include <rz_libswift.h>
#include <rz_lib.h>
#include "rz_demangler_plugins.h"
@ -21,19 +20,6 @@
.demangle = &handler##_cast, \
}
static char *libdemangle_handler_swift(RZ_NULLABLE const char *symbol, RzDemangleOpts flags) {
(void)flags;
if (RZ_STR_ISEMPTY(symbol)) {
return NULL;
}
if (symbol[0] == '_' && symbol[1] == '_') {
symbol++;
}
return rz_libswift_demangle_line(symbol);
}
#if WITH_GPL
// cpp demangler contains GPL2 code and LGPL3 for delphi
DEFINE_DEMANGLER_PLUGIN(cpp, "c++", "GPL-2,LGPL3", "FSF/deroad", libdemangle_handler_cxx);
@ -47,7 +33,6 @@ DEFINE_DEMANGLER_PLUGIN(java, "java", "LGPL3", "deroad", libdemangle_handler_jav
DEFINE_DEMANGLER_PLUGIN(msvc, "msvc", "LGPL3", "inisider", libdemangle_handler_msvc);
DEFINE_DEMANGLER_PLUGIN(objc, "objc", "LGPL3", "pancake", libdemangle_handler_objc);
DEFINE_DEMANGLER_PLUGIN(pascal, "pascal", "LGPL3", "deroad", libdemangle_handler_pascal);
DEFINE_DEMANGLER_PLUGIN(swift, "swift", "Apache-2.0", "deroad", libdemangle_handler_swift);
static RzDemanglerPlugin *demangler_static_plugins[] = { RZ_DEMANGLER_STATIC_PLUGINS };
@ -95,13 +80,6 @@ RZ_API RZ_OWN char *rz_demangler_msvc(RZ_NONNULL const char *symbol, RzDemangler
return libdemangle_handler_msvc(symbol, (RzDemangleOpts)flags);
}
/**
* \brief Demangles Microsoft VC symbols
*/
RZ_API RZ_OWN char *rz_demangler_swift(RZ_NONNULL const char *symbol, RzDemanglerFlag flags) {
return libdemangle_handler_swift(symbol, (RzDemangleOpts)flags);
}
/**
* \brief Initializes the plugin list and returns a RzDemangler struct
*/

View file

@ -3,7 +3,6 @@ demangler_plugins_list = [
'msvc',
'objc',
'pascal',
'swift'
]
if get_option('use_gpl')
@ -20,7 +19,7 @@ rz_demangler_sources = [
'demangler.c'
]
dependencies = [rz_util_dep, libdemangle_dep, libswift_dep]
dependencies = [rz_util_dep, libdemangle_dep]
rz_demangler = library('rz_demangler', rz_demangler_sources,
include_directories: [platform_inc],

View file

@ -39,7 +39,6 @@ typedef bool (*RzDemanglerIter)(const RzDemanglerPlugin *plugin, RzDemanglerFlag
RZ_API RZ_OWN char *rz_demangler_java(RZ_NULLABLE const char *symbol, RzDemanglerFlag flags);
RZ_API RZ_OWN char *rz_demangler_cxx(RZ_NONNULL const char *symbol, RzDemanglerFlag flags);
RZ_API RZ_OWN char *rz_demangler_swift(RZ_NONNULL const char *symbol, RzDemanglerFlag flags);
RZ_API RZ_OWN char *rz_demangler_objc(RZ_NONNULL const char *symbol, RzDemanglerFlag flags);
RZ_API RZ_OWN char *rz_demangler_pascal(RZ_NONNULL const char *symbol, RzDemanglerFlag flags);
RZ_API RZ_OWN char *rz_demangler_rust(RZ_NONNULL const char *symbol, RzDemanglerFlag flags);

View file

@ -1,4 +1,4 @@
project('rizin', 'c', 'cpp',
project('rizin', 'c',
version: 'v0.9.0',
license: 'LGPL-3.0-only',
meson_version: '>=0.57.0',
@ -309,21 +309,6 @@ endif
libdemangle_proj = subproject('libdemangle', default_options: libdemangle_options)
libdemangle_dep = libdemangle_proj.get_variable('libdemangle_dep')
# handle libswift
r = run_command(py3_exe, check_meson_subproject_py, 'libswift', check: false)
if r.returncode() == 1 and get_option('subprojects_check')
error(subproject_clean_error_msg)
endif
# we do not want the rizin plugin, but a library to integrate
libswift_options = [
'default_library=static',
'enable_plugin=false',
'werror=false'
]
libswift_proj = subproject('libswift', default_options: libswift_options)
libswift_dep = libswift_proj.get_variable('libswift_dep')
# handle blake3 algo
blake3_proj = subproject('blake3', default_options: ['default_library=static', 'werror=false'])
blake3_dep = blake3_proj.get_variable('blake3_dep')

View file

@ -1,4 +0,0 @@
[wrap-git]
url = https://github.com/rizinorg/rz-libswift.git
revision = 81a2d39d628c252d2055dbcba485ef758139828d
depth = 1

View file

@ -430,6 +430,7 @@ RUN
NAME=Analyze classes in swift
FILE=bins/mach0/swift-main
BROKEN=1
CMDS=<<EOF
aaa
acll
@ -498,6 +499,7 @@ RUN
NAME=Analyze class inheritance in swift
FILE=bins/mach0/swift-bin-multi-inherit
BROKEN=1
CMDS=<<EOF
aaa
acll

View file

@ -347,6 +347,7 @@ RUN
NAME=DYLD_CHAINED_PTR_64
FILE=bins/mach0/ios-DYLD_CHAINED_PTR_64
BROKEN=1
CMDS=<<EOF
pv8 @ 0x100011538 # resolved pointer to "v32@0:8@16@24" string
ic

View file

@ -102,6 +102,7 @@ RUN
NAME=objc categories (swift)
FILE=bins/mach0/TestSwiftObjc
BROKEN=1
CMDS=ic
EXPECT=<<EOF
address min max name super

View file

@ -1,5 +1,6 @@
NAME=mach0 swift demangle methods
FILE=bins/mach0/swift-main
BROKEN=1
CMDS=isq~main.
EXPECT=<<EOF
0x100001b70 0 main.moin() -> Swift.Int
@ -73,6 +74,7 @@ RUN
NAME=mach0 swift-x86-64 aav
FILE=bins/mach0/swift-main
BROKEN=1
CMDS=<<EOF
C*~^?Cd
aav
@ -88,6 +90,7 @@ RUN
NAME=swift-x86-64 calling convention
FILE=bins/mach0/swift5.1-throwError
BROKEN=1
CMDS=<<EOF
s sym.throwError.Thrower.throwError.Thrower.throwMyError___throws
af
@ -123,6 +126,7 @@ RUN
NAME=swift-x86-64 calling convention json
FILE=bins/mach0/swift5.1-throwError
BROKEN=1
CMDS=<<EOF
s sym.throwError.Thrower.throwError.Thrower.throwMyError___throws
af
@ -139,6 +143,7 @@ RUN
NAME=swift-x86-64 bin classes and methods
FILE=bins/mach0/swift-main
BROKEN=1
CMDS=<<EOF
ic
icm
@ -192,4 +197,4 @@ EXPECT=<<EOF
0x1000021b0 36 main.Tost msg.setter : Swift.String
0x100002210 37 main.Tost msg.materializeForSet : Swift.String
EOF
RUN
RUN

View file

@ -906,7 +906,6 @@ java LGPL3 deroad
msvc LGPL3 inisider
objc LGPL3 pancake
pascal LGPL3 deroad
swift Apache-2.0 deroad
c++ GPL-2,LGPL3 FSF/deroad
rust LGPL3 Dhruv Maroo/RizinOrg
EOF