godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
91.25k stars 21.22k forks source link

Cannot compile Godot Mono glue on macOS #59658

Open Colocasia opened 2 years ago

Colocasia commented 2 years ago

Godot version

3.4.4-stable 4.0-dev

System information

Mac M1

Issue description

scons platform=osx arch=arm64 tools=yes module_mono_enabled=yes copy_mono_root=yes mono_glue=no --jobs=$(sysctl -n hw.logicalcpu)

I got error:

ld: warning: ignoring file /Library/Frameworks/Mono.framework/Versions/Current/lib/libmonosgen-2.0.dylib, missing required architecture arm64 in file /Library/Frameworks/Mono.framework/Versions/Current/lib/libmonosgen-2.0.dylib (2 slices)
Undefined symbols for architecture arm64:
  "_mono_add_internal_call", referenced from:
      void GDMonoUtils::add_internal_call<_MonoString*>(char const*, _MonoString* (*)()) in libmodules.osx.tools.arm64.a(editor_internal_calls.osx.tools.arm64.o)
      void GDMonoUtils::add_internal_call<_MonoString*, _MonoString*, int, unsigned char>(char const*, void (*)(_MonoString*, _MonoString*, int, unsigned char)) in libmodules.osx.tools.arm64.a(editor_internal_calls.osx.tools.arm64.o)
      void GDMonoUtils::add_internal_call<_MonoString*>(char const*, void (*)(_MonoString*)) in libmodules.osx.tools.arm64.a(editor_internal_calls.osx.tools.arm64.o)
      void GDMonoUtils::add_internal_call<unsigned char, _MonoString*, _MonoString*, int, unsigned char>(char const*, unsigned char (*)(_MonoString*, _MonoString*, int, unsigned char)) in libmodules.osx.tools.arm64.a(editor_internal_calls.osx.tools.arm64.o)
      void GDMonoUtils::add_internal_call<int, _MonoString*, _MonoObject*, _MonoString**>(char const*, int (*)(_MonoString*, _MonoObject*, _MonoString**)) in libmodules.osx.tools.arm64.a(editor_internal_calls.osx.tools.arm64.o)
      void GDMonoUtils::add_internal_call<unsigned int, _MonoObject*, _MonoString*, _MonoString*, _MonoObject*>(char const*, unsigned int (*)(_MonoObject*, _MonoString*, _MonoString*, _MonoObject*)) in libmodules.osx.tools.arm64.a(editor_internal_calls.osx.tools.arm64.o)
      void GDMonoUtils::add_internal_call<_MonoString*, _MonoString*>(char const*, _MonoString* (*)(_MonoString*)) in libmodules.osx.tools.arm64.a(editor_internal_calls.osx.tools.arm64.o)
      ...
  "_mono_array_addr_with_size", referenced from:
      CSharpLanguage::stack_trace_get_info(_MonoObject*) in libmodules.osx.tools.arm64.a(csharp_script.osx.tools.arm64.o)
      GDMonoMethod::invoke(_MonoObject*, Variant const**, _MonoException**) in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
      GDMonoMarshal::Array_to_mono_array(Array const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::PoolByteArray_to_mono_array(PoolVector<unsigned char> const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::PoolIntArray_to_mono_array(PoolVector<int> const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::PoolRealArray_to_mono_array(PoolVector<float> const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::PoolStringArray_to_mono_array(PoolVector<String> const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      ...
  "_mono_array_length", referenced from:
      CSharpLanguage::stack_trace_get_info(_MonoObject*) in libmodules.osx.tools.arm64.a(csharp_script.osx.tools.arm64.o)
      GDMonoMarshal::mono_array_to_Array(_MonoArray*) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::mono_array_to_PoolByteArray(_MonoArray*) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::mono_array_to_PoolIntArray(_MonoArray*) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::mono_array_to_PoolRealArray(_MonoArray*) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::mono_array_to_PoolStringArray(_MonoArray*) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::mono_array_to_PoolVector2Array(_MonoArray*) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      ...
  "_mono_array_new", referenced from:
      GDMonoMethod::invoke(_MonoObject*, Variant const**, _MonoException**) in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
      GDMonoMarshal::Array_to_mono_array(Array const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::PoolByteArray_to_mono_array(PoolVector<unsigned char> const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::PoolIntArray_to_mono_array(PoolVector<int> const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::PoolRealArray_to_mono_array(PoolVector<float> const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::PoolStringArray_to_mono_array(PoolVector<String> const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::PoolVector2Array_to_mono_array(PoolVector<Vector2> const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      ...
  "_mono_assembly_get_assemblyref", referenced from:
      GodotSharpExport::get_assembly_dependencies(GDMonoAssembly*, _MonoAssemblyName*, Vector<String> const&, Dictionary&) in libmodules.osx.tools.arm64.a(godotsharp_export.osx.tools.arm64.o)
  "_mono_assembly_get_image", referenced from:
      GDMonoAssembly::assembly_load_hook(_MonoAssembly*, void*) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
  "_mono_assembly_get_name", referenced from:
      GDMonoAssembly::assembly_load_hook(_MonoAssembly*, void*) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
      GDMonoAssembly::_real_load_assembly_from(String const&, bool, _MonoAssemblyName*) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
  "_mono_assembly_getrootdir", referenced from:
      GDMono::determine_mono_dirs(String&, String&) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      GDMonoAssembly::fill_search_dirs(Vector<String>&, String const&, String const&) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
  "_mono_assembly_invoke_search_hook", referenced from:
      GDMonoAssembly::load(String const&, _MonoAssemblyName*, bool, Vector<String> const&) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
      GDMonoAssembly::load_from(String const&, String const&, bool) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
  "_mono_assembly_load_from_full", referenced from:
      GDMonoAssembly::_real_load_assembly_from(String const&, bool, _MonoAssemblyName*) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
  "_mono_assembly_name_free", referenced from:
      GDMono::load_assembly(String const&, GDMonoAssembly**, bool) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      GDMonoAssembly::load_from(String const&, String const&, bool) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
      GodotSharpExport::new_mono_assembly_name() in libmodules.osx.tools.arm64.a(godotsharp_export.osx.tools.arm64.o)
  "_mono_assembly_name_get_name", referenced from:
      GDMonoAssembly::assembly_load_hook(_MonoAssembly*, void*) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
      GDMonoAssembly::_search_hook(_MonoAssemblyName*, void*, bool) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
      GDMonoAssembly::_preload_hook(_MonoAssemblyName*, char**, void*, bool) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
      GDMonoAssembly::_real_load_assembly_from(String const&, bool, _MonoAssemblyName*) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
  "_mono_assembly_name_get_version", referenced from:
      GDMonoAssembly::_real_load_assembly_from(String const&, bool, _MonoAssemblyName*) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
  "_mono_assembly_name_new", referenced from:
      GDMono::load_assembly(String const&, GDMonoAssembly**, bool) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      GDMonoAssembly::load_from(String const&, String const&, bool) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
      GodotSharpExport::new_mono_assembly_name() in libmodules.osx.tools.arm64.a(godotsharp_export.osx.tools.arm64.o)
  "_mono_assembly_set_main", referenced from:
      GDMono::_load_project_assembly() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
  "_mono_class_enum_basetype", referenced from:
      CSharpScript::_try_get_member_export_hint(IMonoClassMember*, ManagedType, Variant::Type, bool, PropertyHint&, String&) in libmodules.osx.tools.arm64.a(csharp_script.osx.tools.arm64.o)
      GDMonoField::set_value_from_variant(_MonoObject*, Variant const&) in libmodules.osx.tools.arm64.a(gd_mono_field.osx.tools.arm64.o)
      GDMonoMarshal::variant_to_mono_object(Variant const*, ManagedType const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
  "_mono_class_from_mono_type", referenced from:
      godot_icall_Internal_GetScriptsMetadataOrNothing(_MonoReflectionType*) in libmodules.osx.tools.arm64.a(editor_internal_calls.osx.tools.arm64.o)
      GDMonoField::GDMonoField(_MonoClassField*, GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_field.osx.tools.arm64.o)
      GDMonoUtils::create_managed_from(Array const&, GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoUtils::create_managed_from(Dictionary const&, GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoMethod::_update_signature(_MonoMethodSignature*) in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
      GDMonoMarshal::variant_to_mono_object(Variant const*, ManagedType const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoProperty::GDMonoProperty(_MonoProperty*, GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_property.osx.tools.arm64.o)
      ...
  "_mono_class_from_name", referenced from:
      GDMonoAssembly::get_class(StringName const&, StringName const&) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
      GDMonoInternals::gd_unhandled_exception_event(_MonoException*) in libmodules.osx.tools.arm64.a(gd_mono_internals.osx.tools.arm64.o)
  "_mono_class_get", referenced from:
      GDMonoAssembly::get_object_derived_class(StringName const&) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
  "_mono_class_get_element_class", referenced from:
      GDMonoMarshal::managed_to_variant_type(ManagedType const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::try_get_array_element_type(ManagedType const&, ManagedType&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
  "_mono_class_get_field_from_name", referenced from:
      GDMonoClass::get_field(StringName const&) in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
  "_mono_class_get_fields", referenced from:
      GDMonoClass::get_enum_fields() in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoClass::get_all_fields() in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
  "_mono_class_get_flags", referenced from:
      GDMonoClass::get_flags() const in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
  "_mono_class_get_image", referenced from:
      GDMono::get_class(_MonoClass*) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
  "_mono_class_get_method_from_name", referenced from:
      GDMonoClass::get_method(StringName const&, int) in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoInternals::gd_unhandled_exception_event(_MonoException*) in libmodules.osx.tools.arm64.a(gd_mono_internals.osx.tools.arm64.o)
  "_mono_class_get_methods", referenced from:
      GDMonoClass::fetch_methods_with_godot_api_checks(GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoClass::get_all_methods() in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoUtils::create_managed_from(Array const&, GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoUtils::create_managed_from(Dictionary const&, GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
  "_mono_class_get_name", referenced from:
      GDMonoClass::get_all_delegates() in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoAssembly::get_class(_MonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
  "_mono_class_get_namespace", referenced from:
      GDMonoClass::get_all_delegates() in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoAssembly::get_class(_MonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
  "_mono_class_get_nested_types", referenced from:
      GDMonoClass::get_all_delegates() in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoAssembly::get_object_derived_class(StringName const&) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
  "_mono_class_get_nesting_type", referenced from:
      GDMonoClass::get_nesting_class() const in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
  "_mono_class_get_parent", referenced from:
      GDMonoClass::get_parent_class() const in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
  "_mono_class_get_properties", referenced from:
      GDMonoClass::get_all_properties() in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
  "_mono_class_get_property_from_name", referenced from:
      GDMonoClass::get_property(StringName const&) in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoUtils::get_exception_name_and_message(_MonoException*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoUtils::set_exception_message(_MonoException*, String) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
  "_mono_class_get_type", referenced from:
      GDMonoClass::get_mono_type(_MonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoUtils::get_exception_name_and_message(_MonoException*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
  "_mono_class_implements_interface", referenced from:
      GDMonoClass::implements_interface(GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
  "_mono_class_is_assignable_from", referenced from:
      GDMonoClass::is_assignable_from(GDMonoClass*) const in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoAssembly::get_object_derived_class(StringName const&) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
  "_mono_class_is_delegate", referenced from:
      GDMonoClass::get_all_delegates() in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
  "_mono_class_is_enum", referenced from:
      CSharpScript::_try_get_member_export_hint(IMonoClassMember*, ManagedType, Variant::Type, bool, PropertyHint&, String&) in libmodules.osx.tools.arm64.a(csharp_script.osx.tools.arm64.o)
      GDMonoClass::get_enum_fields() in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoField::set_value_from_variant(_MonoObject*, Variant const&) in libmodules.osx.tools.arm64.a(gd_mono_field.osx.tools.arm64.o)
      GDMonoMarshal::managed_to_variant_type(ManagedType const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::variant_to_mono_object(Variant const*, ManagedType const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::mono_object_to_variant_impl(_MonoObject*, ManagedType const&, bool) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
  "_mono_config_parse", referenced from:
      GDMono::initialize() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
  "_mono_custom_attrs_free", referenced from:
      GDMonoClass::~GDMonoClass() in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoField::~GDMonoField() in libmodules.osx.tools.arm64.a(gd_mono_field.osx.tools.arm64.o)
      GDMonoMethod::~GDMonoMethod() in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
      GDMonoProperty::~GDMonoProperty() in libmodules.osx.tools.arm64.a(gd_mono_property.osx.tools.arm64.o)
  "_mono_custom_attrs_from_class", referenced from:
      GDMonoClass::fetch_attributes() in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
  "_mono_custom_attrs_from_field", referenced from:
      GDMonoField::fetch_attributes() in libmodules.osx.tools.arm64.a(gd_mono_field.osx.tools.arm64.o)
  "_mono_custom_attrs_from_method", referenced from:
      GDMonoMethod::fetch_attributes() in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
  "_mono_custom_attrs_from_property", referenced from:
      GDMonoProperty::fetch_attributes() in libmodules.osx.tools.arm64.a(gd_mono_property.osx.tools.arm64.o)
  "_mono_custom_attrs_get_attr", referenced from:
      GDMonoClass::get_attribute(GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoField::get_attribute(GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_field.osx.tools.arm64.o)
      GDMonoMethod::get_attribute(GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
      GDMonoProperty::get_attribute(GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_property.osx.tools.arm64.o)
  "_mono_custom_attrs_has_attr", referenced from:
      GDMonoClass::has_attribute(GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoField::has_attribute(GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_field.osx.tools.arm64.o)
      GDMonoMethod::has_attribute(GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
      GDMonoProperty::has_attribute(GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_property.osx.tools.arm64.o)
  "_mono_debug_init", referenced from:
      (anonymous namespace)::gd_mono_debug_init() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
  "_mono_debug_open_image_from_memory", referenced from:
      GDMonoAssembly::_real_load_assembly_from(String const&, bool, _MonoAssemblyName*) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
  "_mono_domain_create_appdomain", referenced from:
      GDMonoUtils::create_domain(String const&) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
  "_mono_domain_finalize", referenced from:
      GDMono::_unload_scripts_domain() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      GDMono::finalize_and_unload_domain(_MonoDomain*) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
  "_mono_domain_get", referenced from:
      GDMono::get_loaded_assembly(String const&) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      GDMono::_unload_scripts_domain() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      GDMono::finalize_and_unload_domain(_MonoDomain*) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      GDMono::get_class(_MonoClass*) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      GDMono::get_class(StringName const&, StringName const&) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      _GodotSharp::get_domain_id() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      _GodotSharp::is_domain_finalizing_for_unload() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      ...
  "_mono_domain_get_by_id", referenced from:
      _GodotSharp::is_domain_finalizing_for_unload(int) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
  "_mono_domain_get_friendly_name", referenced from:
      GDMono::finalize_and_unload_domain(_MonoDomain*) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
  "_mono_domain_get_id", referenced from:
      GDMono::get_loaded_assembly(String const&) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      GDMono::_unload_scripts_domain() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      GDMono::finalize_and_unload_domain(_MonoDomain*) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      GDMono::get_class(_MonoClass*) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      GDMono::get_class(StringName const&, StringName const&) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      _GodotSharp::get_domain_id() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      _GodotSharp::get_scripts_domain_id() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      ...
  "_mono_domain_is_unloading", referenced from:
      _GodotSharp::is_domain_finalizing_for_unload(_MonoDomain*) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
  "_mono_domain_set", referenced from:
      GDMono::_load_scripts_domain() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      GDMono::_unload_scripts_domain() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      GDMono::finalize_and_unload_domain(_MonoDomain*) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      gdmono::ScopeDomain::ScopeDomain(_MonoDomain*) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      gdmono::ScopeDomain::~ScopeDomain() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      gdmono::ScopeDomain::ScopeDomain(_MonoDomain*) in libmodules.osx.tools.arm64.a(godotsharp_export.osx.tools.arm64.o)
      gdmono::ScopeDomain::~ScopeDomain() in libmodules.osx.tools.arm64.a(godotsharp_export.osx.tools.arm64.o)
      ...
  "_mono_domain_set_config", referenced from:
      GDMonoUtils::create_domain(String const&) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
  "_mono_domain_try_unload", referenced from:
      GDMono::_unload_scripts_domain() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      GDMono::finalize_and_unload_domain(_MonoDomain*) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
  "_mono_environment_exitcode_get", referenced from:
      GDMono::unhandled_exception_hook(_MonoObject*, void*) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
  "_mono_error_cleanup", referenced from:
      GDMonoMarshal::mono_to_utf8_string(_MonoString*) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
  "_mono_error_get_message", referenced from:
      GDMonoMarshal::mono_to_utf8_string(_MonoString*) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
  "_mono_error_ok", referenced from:
      GDMonoMarshal::mono_to_utf8_string(_MonoString*) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
  "_mono_field_get_flags", referenced from:
      GDMonoClass::get_enum_fields() in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoField::is_static() in libmodules.osx.tools.arm64.a(gd_mono_field.osx.tools.arm64.o)
      GDMonoField::get_visibility() in libmodules.osx.tools.arm64.a(gd_mono_field.osx.tools.arm64.o)
  "_mono_field_get_name", referenced from:
      CSharpScript::_try_get_member_export_hint(IMonoClassMember*, ManagedType, Variant::Type, bool, PropertyHint&, String&) in libmodules.osx.tools.arm64.a(csharp_script.osx.tools.arm64.o)
      GDMonoClass::get_all_fields() in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoField::GDMonoField(_MonoClassField*, GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_field.osx.tools.arm64.o)
  "_mono_field_get_type", referenced from:
      GDMonoField::GDMonoField(_MonoClassField*, GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_field.osx.tools.arm64.o)
  "_mono_field_get_value_object", referenced from:
      CSharpScript::_try_get_member_export_hint(IMonoClassMember*, ManagedType, Variant::Type, bool, PropertyHint&, String&) in libmodules.osx.tools.arm64.a(csharp_script.osx.tools.arm64.o)
      GDMonoField::get_value(_MonoObject*) in libmodules.osx.tools.arm64.a(gd_mono_field.osx.tools.arm64.o)
  "_mono_field_set_value", referenced from:
      GDMonoField::set_value_raw(_MonoObject*, void*) in libmodules.osx.tools.arm64.a(gd_mono_field.osx.tools.arm64.o)
      GDMonoField::set_value_from_variant(_MonoObject*, Variant const&) in libmodules.osx.tools.arm64.a(gd_mono_field.osx.tools.arm64.o)
  "_mono_free", referenced from:
      GDMono::initialize() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      GDMono::load_assembly(String const&, GDMonoAssembly**, bool) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      GDMonoUtils::get_exception_name_and_message(_MonoException*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoMethod::get_full_name(bool) const in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
      GDMonoMethod::get_full_name_no_class() const in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
      GDMonoMethod::get_ret_type_full_name() const in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
      GDMonoMethod::get_signature_desc(bool) const in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
      ...
  "_mono_gc_collect", referenced from:
      GDMono::_unload_scripts_domain() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      GDMono::finalize_and_unload_domain(_MonoDomain*) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
  "_mono_gc_max_generation", referenced from:
      GDMono::_unload_scripts_domain() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      GDMono::finalize_and_unload_domain(_MonoDomain*) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
  "_mono_gc_wbarrier_set_arrayref", referenced from:
      GDMonoMethod::invoke(_MonoObject*, Variant const**, _MonoException**) in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
      GDMonoMarshal::Array_to_mono_array(Array const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::PoolStringArray_to_mono_array(PoolVector<String> const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::Array_to_mono_array(Array const&, GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoProperty::set_value(_MonoObject*, _MonoObject*, _MonoException**) in libmodules.osx.tools.arm64.a(gd_mono_property.osx.tools.arm64.o)
  "_mono_gchandle_free", referenced from:
      MonoGCHandle::free_handle(unsigned int) in libmodules.osx.tools.arm64.a(mono_gc_handle.osx.tools.arm64.o)
  "_mono_gchandle_get_target", referenced from:
      MonoGCHandle::get_target() const in libmodules.osx.tools.arm64.a(csharp_script.osx.tools.arm64.o)
      MonoGCHandle::get_target() const in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
  "_mono_gchandle_new", referenced from:
      MonoGCHandle::new_strong_handle(_MonoObject*) in libmodules.osx.tools.arm64.a(mono_gc_handle.osx.tools.arm64.o)
      MonoGCHandle::new_strong_handle_pinned(_MonoObject*) in libmodules.osx.tools.arm64.a(mono_gc_handle.osx.tools.arm64.o)
  "_mono_gchandle_new_weakref", referenced from:
      MonoGCHandle::new_weak_handle(_MonoObject*) in libmodules.osx.tools.arm64.a(mono_gc_handle.osx.tools.arm64.o)
  "_mono_get_boolean_class", referenced from:
      GDMonoCache::update_corlib_cache() in libmodules.osx.tools.arm64.a(gd_mono_cache.osx.tools.arm64.o)
  "_mono_get_byte_class", referenced from:
      GDMonoCache::update_corlib_cache() in libmodules.osx.tools.arm64.a(gd_mono_cache.osx.tools.arm64.o)
  "_mono_get_config_dir", referenced from:
      GDMono::determine_mono_dirs(String&, String&) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
  "_mono_get_double_class", referenced from:
      GDMonoCache::update_corlib_cache() in libmodules.osx.tools.arm64.a(gd_mono_cache.osx.tools.arm64.o)
  "_mono_get_exception_class", referenced from:
      GDMonoUtils::debug_send_unhandled_exception_error(_MonoException*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
  "_mono_get_int16_class", referenced from:
      GDMonoCache::update_corlib_cache() in libmodules.osx.tools.arm64.a(gd_mono_cache.osx.tools.arm64.o)
  "_mono_get_int32_class", referenced from:
      GDMonoCache::update_corlib_cache() in libmodules.osx.tools.arm64.a(gd_mono_cache.osx.tools.arm64.o)
  "_mono_get_int64_class", referenced from:
      GDMonoCache::update_corlib_cache() in libmodules.osx.tools.arm64.a(gd_mono_cache.osx.tools.arm64.o)
  "_mono_get_intptr_class", referenced from:
      GDMonoCache::update_corlib_cache() in libmodules.osx.tools.arm64.a(gd_mono_cache.osx.tools.arm64.o)
  "_mono_get_object_class", referenced from:
      GDMonoCache::update_corlib_cache() in libmodules.osx.tools.arm64.a(gd_mono_cache.osx.tools.arm64.o)
  "_mono_get_root_domain", referenced from:
      GDMonoUtils::attach_current_thread() in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
  "_mono_get_runtime_build_info", referenced from:
      GDMono::initialize() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
  "_mono_get_sbyte_class", referenced from:
      GDMonoCache::update_corlib_cache() in libmodules.osx.tools.arm64.a(gd_mono_cache.osx.tools.arm64.o)
  "_mono_get_single_class", referenced from:
      GDMonoCache::update_corlib_cache() in libmodules.osx.tools.arm64.a(gd_mono_cache.osx.tools.arm64.o)
  "_mono_get_string_class", referenced from:
      GDMonoCache::update_corlib_cache() in libmodules.osx.tools.arm64.a(gd_mono_cache.osx.tools.arm64.o)
  "_mono_get_uint16_class", referenced from:
      GDMonoCache::update_corlib_cache() in libmodules.osx.tools.arm64.a(gd_mono_cache.osx.tools.arm64.o)
  "_mono_get_uint32_class", referenced from:
      GDMonoCache::update_corlib_cache() in libmodules.osx.tools.arm64.a(gd_mono_cache.osx.tools.arm64.o)
  "_mono_get_uint64_class", referenced from:
      GDMonoCache::update_corlib_cache() in libmodules.osx.tools.arm64.a(gd_mono_cache.osx.tools.arm64.o)
  "_mono_image_close", referenced from:
      GDMonoAssembly::_real_load_assembly_from(String const&, bool, _MonoAssemblyName*) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
  "_mono_image_get_assembly", referenced from:
      GDMonoAssembly::_real_load_assembly_from(String const&, bool, _MonoAssemblyName*) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
  "_mono_image_get_filename", referenced from:
      GDMonoAssembly::assembly_load_hook(_MonoAssembly*, void*) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
      GDMonoAssembly::get_path() const in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
  "_mono_image_get_table_info", referenced from:
      GDMonoAssembly::_real_load_assembly_from(String const&, bool, _MonoAssemblyName*) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
      GodotSharpExport::get_assemblyref_name(_MonoImage*, int) in libmodules.osx.tools.arm64.a(godotsharp_export.osx.tools.arm64.o)
  "_mono_image_get_table_rows", referenced from:
      GDMonoAssembly::get_object_derived_class(StringName const&) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
      GodotSharpExport::get_assembly_dependencies(GDMonoAssembly*, _MonoAssemblyName*, Vector<String> const&, Dictionary&) in libmodules.osx.tools.arm64.a(godotsharp_export.osx.tools.arm64.o)
  "_mono_image_open_from_data_with_name", referenced from:
      GDMonoAssembly::_real_load_assembly_from(String const&, bool, _MonoAssemblyName*) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
  "_mono_install_assembly_load_hook", referenced from:
      GDMonoAssembly::initialize() in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
  "_mono_install_assembly_preload_hook", referenced from:
      GDMonoAssembly::initialize() in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
  "_mono_install_assembly_refonly_preload_hook", referenced from:
      GDMonoAssembly::initialize() in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
  "_mono_install_assembly_refonly_search_hook", referenced from:
      GDMonoAssembly::initialize() in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
  "_mono_install_assembly_search_hook", referenced from:
      GDMonoAssembly::initialize() in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
  "_mono_install_unhandled_exception_hook", referenced from:
      GDMono::initialize() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
  "_mono_jit_cleanup", referenced from:
      GDMono::~GDMono() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
  "_mono_jit_init_version", referenced from:
      (anonymous namespace)::gd_initialize_mono_runtime() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
  "_mono_jit_parse_options", referenced from:
      (anonymous namespace)::gd_mono_debug_init() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
  "_mono_metadata_decode_row", referenced from:
      GDMonoAssembly::_real_load_assembly_from(String const&, bool, _MonoAssemblyName*) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
      GodotSharpExport::get_assemblyref_name(_MonoImage*, int) in libmodules.osx.tools.arm64.a(godotsharp_export.osx.tools.arm64.o)
  "_mono_metadata_string_heap", referenced from:
      GodotSharpExport::get_assemblyref_name(_MonoImage*, int) in libmodules.osx.tools.arm64.a(godotsharp_export.osx.tools.arm64.o)
  "_mono_method_desc_free", referenced from:
      GDMonoClass::get_method_with_desc(String const&, bool) in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
  "_mono_method_desc_new", referenced from:
      GDMonoClass::get_method_with_desc(String const&, bool) in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
  "_mono_method_desc_search_in_class", referenced from:
      GDMonoClass::get_method_with_desc(String const&, bool) in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
  "_mono_method_full_name", referenced from:
      GDMonoMethod::get_full_name(bool) const in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
  "_mono_method_get_class", referenced from:
      GDMonoClass::get_method_with_desc(String const&, bool) in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoMethod::get_enclosing_class() const in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
  "_mono_method_get_flags", referenced from:
      GDMonoClass::fetch_methods_with_godot_api_checks(GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoMethod::is_static() in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
      GDMonoMethod::get_visibility() in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
      GDMonoProperty::is_static() in libmodules.osx.tools.arm64.a(gd_mono_property.osx.tools.arm64.o)
      GDMonoProperty::get_visibility() in libmodules.osx.tools.arm64.a(gd_mono_property.osx.tools.arm64.o)
  "_mono_method_get_name", referenced from:
      GDMonoClass::fetch_methods_with_godot_api_checks(GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoClass::get_method(_MonoMethod*) in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoClass::get_all_methods() in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoUtils::create_managed_from(Array const&, GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoUtils::create_managed_from(Dictionary const&, GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
  "_mono_method_get_param_names", referenced from:
      GDMonoMethod::get_parameter_names(Vector<StringName>&) const in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
  "_mono_method_get_unmanaged_thunk", referenced from:
      GDMonoMethodThunkR<_MonoArray*, _MonoObject*>::set_from_method(GDMonoMethod*) in libmodules.osx.tools.arm64.a(gd_mono_cache.osx.tools.arm64.o)
      GDMonoMethodThunk<_MonoObject*>::set_from_method(GDMonoMethod*) in libmodules.osx.tools.arm64.a(gd_mono_cache.osx.tools.arm64.o)
      GDMonoMethodThunkR<Array*, _MonoObject*>::set_from_method(GDMonoMethod*) in libmodules.osx.tools.arm64.a(gd_mono_cache.osx.tools.arm64.o)
      GDMonoMethodThunkR<Dictionary*, _MonoObject*>::set_from_method(GDMonoMethod*) in libmodules.osx.tools.arm64.a(gd_mono_cache.osx.tools.arm64.o)
      GDMonoMethodThunk<_MonoObject*, _MonoArray*>::set_from_method(GDMonoMethod*) in libmodules.osx.tools.arm64.a(gd_mono_cache.osx.tools.arm64.o)
      GDMonoMethodThunkR<unsigned char, _MonoReflectionType*>::set_from_method(GDMonoMethod*) in libmodules.osx.tools.arm64.a(gd_mono_cache.osx.tools.arm64.o)
      GDMonoMethodThunk<_MonoReflectionType*, _MonoReflectionType**>::set_from_method(GDMonoMethod*) in libmodules.osx.tools.arm64.a(gd_mono_cache.osx.tools.arm64.o)
      ...
  "_mono_method_signature", referenced from:
      GDMonoClass::get_method(_MonoMethod*, StringName const&) in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoClass::get_method(_MonoMethod*) in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoUtils::create_managed_from(Array const&, GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoUtils::create_managed_from(Dictionary const&, GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoMethod::_update_signature() in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
      GDMonoMethod::get_full_name_no_class() const in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
      GDMonoMethod::get_ret_type_full_name() const in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
      ...
  "_mono_object_get_class", referenced from:
      GDMonoUtils::get_object_class(_MonoObject*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoUtils::get_exception_name_and_message(_MonoException*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoUtils::set_exception_message(_MonoException*, String) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoMarshal::system_generic_list_to_Array_variant(_MonoObject*, GDMonoClass*, _MonoReflectionType*) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::mono_object_to_variant(_MonoObject*) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::mono_object_to_variant_string(_MonoObject*, _MonoException**) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
  "_mono_object_new", referenced from:
      CSharpLanguage::_editor_init_callback() in libmodules.osx.tools.arm64.a(csharp_script.osx.tools.arm64.o)
      CSharpLanguage::debug_get_current_stack_info() in libmodules.osx.tools.arm64.a(csharp_script.osx.tools.arm64.o)
      CSharpInstance::_internal_new_managed() in libmodules.osx.tools.arm64.a(csharp_script.osx.tools.arm64.o)
      CSharpScript::_update_exports(PlaceHolderScriptInstance*) in libmodules.osx.tools.arm64.a(csharp_script.osx.tools.arm64.o)
      CSharpScript::_create_instance(Variant const**, int, Object*, bool, Variant::CallError&) in libmodules.osx.tools.arm64.a(csharp_script.osx.tools.arm64.o)
      GDMonoCache::update_godot_api_cache() in libmodules.osx.tools.arm64.a(gd_mono_cache.osx.tools.arm64.o)
      GDMonoUtils::create_managed_for_godot_object(GDMonoClass*, StringName const&, Object*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      ...
  "_mono_object_to_string", referenced from:
      GDMonoUtils::object_to_string(_MonoObject*, _MonoException**) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
  "_mono_object_unbox", referenced from:
      unsigned long long GDMonoMarshal::unbox<unsigned long long>(_MonoObject*) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      unsigned int GDMonoMarshal::unbox<unsigned int>(_MonoObject*) in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      unsigned char GDMonoMarshal::unbox<unsigned char>(_MonoObject*) in libmodules.osx.tools.arm64.a(csharp_script.osx.tools.arm64.o)
      Object* GDMonoMarshal::unbox<Object*>(_MonoObject*) in libmodules.osx.tools.arm64.a(csharp_script.osx.tools.arm64.o)
      unsigned char GDMonoMarshal::unbox<unsigned char>(_MonoObject*) in libmodules.osx.tools.arm64.a(gd_mono_field.osx.tools.arm64.o)
      int GDMonoMarshal::unbox<int>(_MonoObject*) in libmodules.osx.tools.arm64.a(gd_mono_field.osx.tools.arm64.o)
      unsigned char GDMonoMarshal::unbox<unsigned char>(_MonoObject*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      ...
  "_mono_print_unhandled_exception", referenced from:
      GDMonoUtils::print_unhandled_exception(_MonoException*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoInternals::unhandled_exception(_MonoException*) in libmodules.osx.tools.arm64.a(gd_mono_internals.osx.tools.arm64.o)
  "_mono_profiler_load", referenced from:
      (anonymous namespace)::gd_mono_profiler_init() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
  "_mono_property_get_get_method", referenced from:
      GDMonoProperty::GDMonoProperty(_MonoProperty*, GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_property.osx.tools.arm64.o)
      GDMonoProperty::is_static() in libmodules.osx.tools.arm64.a(gd_mono_property.osx.tools.arm64.o)
      GDMonoProperty::get_visibility() in libmodules.osx.tools.arm64.a(gd_mono_property.osx.tools.arm64.o)
      GDMonoProperty::has_getter() in libmodules.osx.tools.arm64.a(gd_mono_property.osx.tools.arm64.o)
  "_mono_property_get_name", referenced from:
      GDMonoClass::get_all_properties() in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoProperty::GDMonoProperty(_MonoProperty*, GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_property.osx.tools.arm64.o)
  "_mono_property_get_set_method", referenced from:
      GDMonoProperty::GDMonoProperty(_MonoProperty*, GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_property.osx.tools.arm64.o)
      GDMonoProperty::is_static() in libmodules.osx.tools.arm64.a(gd_mono_property.osx.tools.arm64.o)
      GDMonoProperty::get_visibility() in libmodules.osx.tools.arm64.a(gd_mono_property.osx.tools.arm64.o)
      GDMonoProperty::has_setter() in libmodules.osx.tools.arm64.a(gd_mono_property.osx.tools.arm64.o)
      GDMonoProperty::set_value(_MonoObject*, _MonoObject*, _MonoException**) in libmodules.osx.tools.arm64.a(gd_mono_property.osx.tools.arm64.o)
  "_mono_property_get_value", referenced from:
      GDMonoUtils::property_get_value(_MonoProperty*, void*, void**, _MonoException**) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
  "_mono_property_set_value", referenced from:
      GDMonoUtils::property_set_value(_MonoProperty*, void*, void**, _MonoException**) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
  "_mono_reflection_type_get_type", referenced from:
      godot_icall_Internal_GetScriptsMetadataOrNothing(_MonoReflectionType*) in libmodules.osx.tools.arm64.a(editor_internal_calls.osx.tools.arm64.o)
      GDMonoUtils::get_type_desc(_MonoReflectionType*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoMarshal::Array_to_system_generic_list(Array const&, GDMonoClass*, _MonoReflectionType*) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      ManagedType::from_reftype(_MonoReflectionType*) in libmodules.osx.tools.arm64.a(managed_type.osx.tools.arm64.o)
  "_mono_runtime_invoke", referenced from:
      GDMonoUtils::runtime_invoke(_MonoMethod*, void*, void**, _MonoException**) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoInternals::gd_unhandled_exception_event(_MonoException*) in libmodules.osx.tools.arm64.a(gd_mono_internals.osx.tools.arm64.o)
  "_mono_runtime_invoke_array", referenced from:
      GDMonoUtils::runtime_invoke_array(_MonoMethod*, void*, _MonoArray*, _MonoException**) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
  "_mono_runtime_is_shutting_down", referenced from:
      GDMono::is_runtime_initialized() const in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      _GodotSharp::is_runtime_shutting_down() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
      GDMono::is_runtime_initialized() const in libmodules.osx.tools.arm64.a(csharp_script.osx.tools.arm64.o)
      GDMono::is_runtime_initialized() const in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMono::is_runtime_initialized() const in libmodules.osx.tools.arm64.a(mono_gc_handle.osx.tools.arm64.o)
  "_mono_runtime_set_main_args", referenced from:
      (anonymous namespace)::gd_mono_setup_runtime_main_args() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
  "_mono_runtime_set_pending_exception", referenced from:
      GDMonoUtils::set_pending_exception(_MonoException*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
  "_mono_set_dirs", referenced from:
      GDMono::initialize() in libmodules.osx.tools.arm64.a(gd_mono.osx.tools.arm64.o)
  "_mono_signature_get_desc", referenced from:
      GDMonoMethod::get_full_name_no_class() const in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
      GDMonoMethod::get_signature_desc(bool) const in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
  "_mono_signature_get_param_count", referenced from:
      GDMonoClass::get_method(_MonoMethod*, StringName const&) in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoClass::get_method(_MonoMethod*) in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoUtils::create_managed_from(Array const&, GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoUtils::create_managed_from(Dictionary const&, GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoMethod::_update_signature(_MonoMethodSignature*) in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
  "_mono_signature_get_params", referenced from:
      GDMonoUtils::create_managed_from(Array const&, GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoUtils::create_managed_from(Dictionary const&, GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoMethod::_update_signature(_MonoMethodSignature*) in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
      GDMonoProperty::GDMonoProperty(_MonoProperty*, GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_property.osx.tools.arm64.o)
  "_mono_signature_get_return_type", referenced from:
      GDMonoMethod::_update_signature(_MonoMethodSignature*) in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
      GDMonoMethod::get_full_name_no_class() const in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
      GDMonoMethod::get_ret_type_full_name() const in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
      GDMonoProperty::GDMonoProperty(_MonoProperty*, GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_property.osx.tools.arm64.o)
  "_mono_string_chars", referenced from:
      GDMonoMarshal::mono_to_utf16_string(_MonoString*) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
  "_mono_string_length", referenced from:
      GDMonoMarshal::mono_to_utf16_string(_MonoString*) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
  "_mono_string_new", referenced from:
      GDMonoMarshal::mono_from_utf8_string(String const&) in libmodules.osx.tools.arm64.a(editor_internal_calls.osx.tools.arm64.o)
      GDMonoMarshal::mono_from_utf8_string(String const&) in libmodules.osx.tools.arm64.a(gd_mono_field.osx.tools.arm64.o)
      GDMonoMarshal::mono_from_utf8_string(String const&) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoMarshal::mono_from_utf8_string(String const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
  "_mono_string_to_utf8_checked", referenced from:
      GDMonoMarshal::mono_to_utf8_string(_MonoString*) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
  "_mono_table_info_get_rows", referenced from:
      GDMonoAssembly::_real_load_assembly_from(String const&, bool, _MonoAssemblyName*) in libmodules.osx.tools.arm64.a(gd_mono_assembly.osx.tools.arm64.o)
  "_mono_thread_attach", referenced from:
      GDMonoUtils::attach_current_thread() in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
  "_mono_thread_current", referenced from:
      GDMonoUtils::detach_current_thread() in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoUtils::get_current_thread() in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
  "_mono_thread_detach", referenced from:
      GDMonoUtils::detach_current_thread() in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoUtils::detach_current_thread(_MonoThread*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
  "_mono_thread_set_main", referenced from:
      GDMonoUtils::set_main_thread(_MonoThread*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
  "_mono_trace_set_level_string", referenced from:
      GDMonoLog::initialize() in libmodules.osx.tools.arm64.a(gd_mono_log.osx.tools.arm64.o)
  "_mono_trace_set_log_handler", referenced from:
      GDMonoLog::initialize() in libmodules.osx.tools.arm64.a(gd_mono_log.osx.tools.arm64.o)
  "_mono_type_full_name", referenced from:
      GDMonoUtils::get_type_desc(_MonoType*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoUtils::get_exception_name_and_message(_MonoException*) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoMethod::get_full_name_no_class() const in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
      GDMonoMethod::get_ret_type_full_name() const in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
  "_mono_type_get_array_type", referenced from:
      GDMonoField::set_value_from_variant(_MonoObject*, Variant const&) in libmodules.osx.tools.arm64.a(gd_mono_field.osx.tools.arm64.o)
      GDMonoMarshal::variant_to_mono_object(Variant const*, ManagedType const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::mono_object_to_variant_impl(_MonoObject*, ManagedType const&, bool) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
  "_mono_type_get_object", referenced from:
      GDMonoClass::get_full_name(_MonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_class.osx.tools.arm64.o)
      GDMonoField::set_value_from_variant(_MonoObject*, Variant const&) in libmodules.osx.tools.arm64.a(gd_mono_field.osx.tools.arm64.o)
      GDMonoMarshal::managed_to_variant_type(ManagedType const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::try_get_array_element_type(ManagedType const&, ManagedType&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::try_get_dictionary_key_value_types(ManagedType const&, ManagedType&, ManagedType&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::variant_to_mono_object(Variant const*, ManagedType const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      GDMonoMarshal::mono_object_to_variant_impl(_MonoObject*, ManagedType const&, bool) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      ...
  "_mono_type_get_type", referenced from:
      CSharpScript::_get_signal(GDMonoClass*, GDMonoClass*, Vector<CSharpScript::Argument>&) in libmodules.osx.tools.arm64.a(csharp_script.osx.tools.arm64.o)
      godot_icall_Internal_GetScriptsMetadataOrNothing(_MonoReflectionType*) in libmodules.osx.tools.arm64.a(editor_internal_calls.osx.tools.arm64.o)
      GDMonoField::set_value_from_variant(_MonoObject*, Variant const&) in libmodules.osx.tools.arm64.a(gd_mono_field.osx.tools.arm64.o)
      GDMonoField::GDMonoField(_MonoClassField*, GDMonoClass*) in libmodules.osx.tools.arm64.a(gd_mono_field.osx.tools.arm64.o)
      GDMonoUtils::unbox_enum_value(_MonoObject*, _MonoType*, bool&) in libmodules.osx.tools.arm64.a(gd_mono_utils.osx.tools.arm64.o)
      GDMonoMethod::_update_signature(_MonoMethodSignature*) in libmodules.osx.tools.arm64.a(gd_mono_method.osx.tools.arm64.o)
      GDMonoMarshal::variant_to_mono_object(Variant const*, ManagedType const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
      ...
  "_mono_unhandled_exception", referenced from:
      GDMonoInternals::unhandled_exception(_MonoException*) in libmodules.osx.tools.arm64.a(gd_mono_internals.osx.tools.arm64.o)
  "_mono_value_box", referenced from:
      GDMonoMarshal::variant_to_mono_object(Variant const*, ManagedType const&) in libmodules.osx.tools.arm64.a(gd_mono_marshal.osx.tools.arm64.o)
ld: symbol(s) not found for architecture arm64

Steps to reproduce

See above

Minimal reproduction project

No response

akien-mga commented 2 years ago

What Mono version do you have installed? Is it recent enough to support M1 Macs?

bruvzg commented 2 years ago

ld: warning: ignoring file /Library/Frameworks/Mono.framework/Versions/Current/lib/libmonosgen-2.0.dylib, missing required architecture arm64

Seems like you have x86_64 only mono runtime installed. https://www.mono-project.com/download/stable/ should have universal version of mono available.

Colocasia commented 2 years ago

ld: warning: ignoring file /Library/Frameworks/Mono.framework/Versions/Current/lib/libmonosgen-2.0.dylib, missing required architecture arm64

Seems like you have x86_64 only mono runtime installed. https://www.mono-project.com/download/stable/ should have universal version of mono available.

Oh! Seems this problem! I have a try! Thanks!

Colocasia commented 2 years ago

Seems like mono not support M1 Macs! Is there any other way to make the compilation success?

bruvzg commented 2 years ago

Seems like mono not support M1 Macs!

Unfortunately, seems like Mono still provide i386 + x86_64 universal installer only, but it should be possible to compile Mono for the M1 from source.

bruvzg commented 2 years ago

For the reference, to build mono and install it to path/to/install/mono (replace with any suitable location):

git clone https://github.com/mono/mono.git
cd mono
./autogen.sh --host=aarch64-apple-darwin20.0.0 --target=aarch64-apple-darwin20.0.0 --prefix=path/to/install/mono --disable-nls
make
make install

And then add mono_prefix=path/to/install/mono to the Godot build command.

akien-mga commented 2 years ago

Note that official builds use the stable/preview 2020-02 branch, I suggest compiling the same.

It's also recommended to use https://github.com/godotengine/godot-mono-builds to build Mono with some needed patch and configuration applied, especially if you intend to build Android or HTML5 templates.

Colocasia commented 2 years ago

For the reference, to build mono and install it to path/to/install/mono (replace with any suitable location):

git clone https://github.com/mono/mono.git
cd mono
./autogen.sh --host=aarch64-apple-darwin20.0.0 --target=aarch64-apple-darwin20.0.0 --prefix=path/to/install/mono --disable-nls
make
make install

And then add mono_prefix=path/to/install/mono to the Godot build command.

but mono compile with error on mac m1

Colocasia commented 2 years ago

Note that official builds use the stable/preview 2020-02 branch, I suggest compiling the same.

It's also recommended to use https://github.com/godotengine/godot-mono-builds to build Mono with some needed patch and configuration applied, especially if you intend to build Android or HTML5 templates.

i use it to compile mono-6.12.0.122 but compile arm64 error:

[  0%] Building C object boringssl/ssl/pqueue/CMakeFiles/pqueue.dir/pqueue.c.o
error: unknown target CPU 'armv8-a+crypto'
note: valid target CPU values are: nocona, core2, penryn, bonnell, atom, silvermont, slm, goldmont, goldmont-plus, tremont, nehalem, corei7, westmere, sandybridge, corei7-avx, ivybridge, core-avx-i, haswell, core-avx2, broadwell, skylake, skylake-avx512, skx, cascadelake, cooperlake, cannonlake, icelake-client, rocketlake, icelake-server, tigerlake, sapphirerapids, alderlake, knl, knm, k8, athlon64, athlon-fx, opteron, k8-sse3, athlon64-sse3, opteron-sse3, amdfam10, barcelona, btver1, btver2, bdver1, bdver2, bdver3, bdver4, znver1, znver2, znver3, x86-64, x86-64-v2, x86-64-v3, x86-64-v4
make[6]: *** [boringssl/ssl/pqueue/CMakeFiles/pqueue.dir/pqueue.c.o] Error 1
make[5]: *** [boringssl/ssl/pqueue/CMakeFiles/pqueue.dir/all] Error 2
make[4]: *** [all] Error 2
make[3]: *** [build-shared/libmono-btls-shared.dylib] Error 2
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1

compile x86_64 ok

bruvzg commented 2 years ago

i use it to compile mono-6.12.0.122 but compile arm64 error:

Stable won't build on M1, but master should work (I have compiled commit 4b5e2591eb299eb34d60b5217b14c1ad9f11e238 few hours ago, it was fine).

Colocasia commented 2 years ago

4b5e2591eb299eb34d60b5217b14c1ad9f11e238

Oh! Thanks! I have try! Hope it works! ^_^

akien-mga commented 2 years ago

Official builds use mono-6.12.0.158, this works fine. That's also from the 2020-02 branch which is the Preview branch. I have no idea what the master branch of Mono is since they stopped making releases since merging into dotnet-runtime. The 2020-02 (i.e. 6.12) is the latest "Mono" release branch which they still maintain and where they backported arm64 support, but only from 6.12.0.147 or so.

Colocasia commented 2 years ago

Official builds use mono-6.12.0.158, this works fine. That's also from the 2020-02 branch which is the Preview branch. I have no idea what the master branch of Mono is since they stopped making releases since merging into dotnet-runtime. The 2020-02 (i.e. 6.12) is the latest "Mono" release branch which they still maintain and where they backported arm64 support, but only from 6.12.0.147 or so.

CMake Error at CMakeLists.txt:74 (add_subdirectory):
  The source directory

    /Users/gaoxiang/Projects/Engines/mono/external/boringssl

  does not contain a CMakeLists.txt file.

It seems script not check this boringssl

Colocasia commented 2 years ago

I use build script complie 2020-02 branch got error:

/Users/gaoxiang/mono-configs/desktop-osx-arm64-release/mono/btls/build-shared/boringssl/crypto/sha/sha1-armv8.S:7:1: error: unknown directive
.hidden sha1_block_data_order

then i use this command compile ok!

./autogen.sh --host=aarch64-apple-darwin20.0.0 --target=aarch64-apple-darwin20.0.0 --prefix=path/to/install/mono --disable-nls
make

It seems some error in build scripts

akien-mga commented 2 years ago

Make sure that you run ./patch_mono.py before building. It's mentioned in the README but could be made more prominent, it's easy to miss now.

I made a build yesterday with these scripts and the 2020-02 branch (mono-6.12.0.174 tag) and it worked fine: https://github.com/godotengine/godot-mono-builds/releases/tag/release-4e93604

You can see how it does the build e.g. for macOS here: https://github.com/godotengine/godot-mono-builds/blob/4e93604bc4d4004e0ca17de4178bd80bde3d04d1/.github/workflows/build.yml#L227-L235

Colocasia commented 2 years ago

Make sure that you run ./patch_mono.py before building. It's mentioned in the README but could be made more prominent, it's easy to miss now.

I made a build yesterday with these scripts and the 2020-02 branch (mono-6.12.0.174 tag) and it worked fine: https://github.com/godotengine/godot-mono-builds/releases/tag/release-4e93604

You can see how it does the build e.g. for macOS here: https://github.com/godotengine/godot-mono-builds/blob/4e93604bc4d4004e0ca17de4178bd80bde3d04d1/.github/workflows/build.yml#L227-L235

I use these commands:

python3 patch_mono.py --mono-sources=$HOME/Projects/Engines/mono
python3 osx.py configure --target=arm64 --mono-sources=$HOME/Projects/Engines/mono
python3 osx.py make --target=arm64 --mono-sources=$HOME/Projects/Engines/mono

It seems right, but compile error

Scanning dependencies of target sha
[  6%] Building C object boringssl/crypto/sha/CMakeFiles/sha.dir/sha1.c.o
[  6%] Building C object boringssl/crypto/sha/CMakeFiles/sha.dir/sha256.c.o
[  6%] Building C object boringssl/crypto/sha/CMakeFiles/sha.dir/sha512.c.o
[  6%] Building ASM object boringssl/crypto/sha/CMakeFiles/sha.dir/sha1-armv8.S.o
/Users/gaoxiang/mono-configs/desktop-osx-arm64-release/mono/btls/build-shared/boringssl/crypto/sha/sha1-armv8.S:7:1: error: unknown directive
.hidden sha1_block_data_order
^
make[6]: *** [boringssl/crypto/sha/CMakeFiles/sha.dir/sha1-armv8.S.o] Error 1
make[5]: *** [boringssl/crypto/sha/CMakeFiles/sha.dir/all] Error 2
make[4]: *** [all] Error 2
make[3]: *** [build-shared/libmono-btls-shared.dylib] Error 2
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1

I use these commands work fine:

cd $HOME/Projects/Engines/mono
./autogen.sh --host=aarch64-apple-darwin20.0.0 --target=aarch64-apple-darwin20.0.0 -- 
prefix=$HOME/Projects/Engines/mono_arm64 --disable-nls
make
make install

I build with 2020-02 branch (mono-6.12.0.174) on mac m1

Colocasia commented 2 years ago

I run godot with mono on mac m1 crash:

Thread 0 Crashed:: tid_103  Dispatch queue: com.apple.main-thread
0   org.godotengine.godot           0x0000000104bf8928 GDMono::_load_api_assemblies() (.cold.4) + 52 (gd_mono.cpp:932)
1   org.godotengine.godot           0x000000010132cb8c GDMono::_load_api_assemblies() + 248 (gd_mono.cpp:932)
2   org.godotengine.godot           0x000000010132c9d8 GDMono::initialize_load_assemblies() + 24 (gd_mono.cpp:418)
3   org.godotengine.godot           0x0000000101259740 CSharpLanguage::init() + 324 (csharp_script.cpp:137)
4   org.godotengine.godot           0x0000000104967908 ScriptServer::init_languages() + 1040 (script_language.cpp:176)
5   org.godotengine.godot           0x0000000100c14e80 Main::setup2(unsigned long long) + 11528 (main.cpp:1977)
6   org.godotengine.godot           0x0000000100c0d72c Main::setup(char const*, int, char**, bool) + 24308 (main.cpp:1518)
7   org.godotengine.godot           0x0000000100c00a14 main + 456 (godot_main_osx.mm:83)
8   libdyld.dylib                   0x0000000195ae9450 start + 4

What's the cause of the problem?

Colocasia commented 2 years ago

Hi! I compiled mono as follows,It crashes when I run it:

scons p=osx arch=arm64 tools=yes module_mono_enabled=yes mono_glue=no mono_prefix=$HOME/Projects/Engines/mono_arm64 -j$(sysctl -n hw.logicalcpu)
bin/godot.osx.tools.arm64.mono --generate-mono-glue modules/mono/glue
scons p=osx arch=arm64 target=release_debug tools=yes module_mono_enabled=yes mono_glue=yes mono_prefix=$HOME/Projects/Engines/mono_arm64 -j$(sysctl -n hw.logicalcpu)
cp -r misc/dist/osx_tools.app ./Godot.app
mkdir -p Godot.app/Contents/MacOS
cp bin/godot.osx.opt.tools.arm64.mono Godot.app/Contents/MacOS/Godot
chmod +x Godot.app/Contents/MacOS/Godot
mkdir -p Godot.app/Contents/Frameworks
cp -R bin/GodotSharp Godot.app/Contents/Frameworks/

I do something wrong? And where is crash log? I need help

Colocasia commented 2 years ago

Oh! When I run this:

bin/godot.osx.tools.arm64.mono --generate-mono-glue modules/mono/glue

it has error:

ERROR: Cannot resolve type reference in documentation: 'RootMotionView'.
   at: bbcode_to_xml (modules/mono/editor/bindings_generator.cpp:391)
ERROR: Cannot resolve type reference in documentation: 'RootMotionView'.
   at: bbcode_to_xml (modules/mono/editor/bindings_generator.cpp:391)

Is this cause crash?