mono / mono

Mono open source ECMA CLI, C# and .NET implementation.
https://www.mono-project.com
Other
11.13k stars 3.82k forks source link

mono fails to build on macOS < 10.9 #21649

Open barracuda156 opened 1 year ago

barracuda156 commented 1 year ago
mono-proclib.c:611:2: error: unknown type name 'task_vm_info_data_t'; did you mean 'task_info_data_t'?
        task_vm_info_data_t t_info;
        ^~~~~~~~~~~~~~~~~~~
        task_info_data_t
/usr/include/mach/task_info.h:85:19: note: 'task_info_data_t' declared here
typedef integer_t       task_info_data_t[TASK_INFO_MAX];
                        ^
mono-proclib.c:612:38: error: use of undeclared identifier 'TASK_VM_INFO_COUNT'
        mach_msg_type_number_t info_count = TASK_VM_INFO_COUNT;
                                            ^
mono-proclib.c:628:31: error: use of undeclared identifier 'TASK_VM_INFO'
                mach_ret = task_info (task, TASK_VM_INFO, (task_info_t)&t_info, &info_count);
                                            ^
mono-proclib.c:638:15: error: member reference base type 'task_info_data_t' (aka 'integer_t [1024]') is not a structure or union
                ret = t_info.internal + t_info.compressed;
                      ~~~~~~^~~~~~~~~
mono-proclib.c:638:33: error: member reference base type 'task_info_data_t' (aka 'integer_t [1024]') is not a structure or union
                ret = t_info.internal + t_info.compressed;
                                        ~~~~~~^~~~~~~~~~~
mono-proclib.c:640:15: error: member reference base type 'task_info_data_t' (aka 'integer_t [1024]') is not a structure or union
                ret = t_info.resident_size;
                      ~~~~~~^~~~~~~~~~~~~~
mono-proclib.c:642:15: error: member reference base type 'task_info_data_t' (aka 'integer_t [1024]') is not a structure or union
                ret = t_info.resident_size_peak;
                      ~~~~~~^~~~~~~~~~~~~~~~~~~
mono-proclib.c:644:15: error: member reference base type 'task_info_data_t' (aka 'integer_t [1024]') is not a structure or union
                ret = t_info.virtual_size;
                      ~~~~~~^~~~~~~~~~~~~
mono-proclib.c:659:15: error: member reference base type 'task_info_data_t' (aka 'integer_t [1024]') is not a structure or union
                ret = t_info.compressed;
                      ~~~~~~^~~~~~~~~~~
9 errors generated.

https://trac.macports.org/ticket/61151

barracuda156 commented 1 year ago

Ok, this commit has broken the build: https://github.com/mono/mono/commit/db5f38402f39f6aeb30a5f12b4e90d7c943f6761

@DavidKarlas @marek-safar Could we make the code conditional to unbreak it?

barracuda156 commented 1 year ago

Apparently it has a broken ppc assembler too:

  CC       libmonoruntimesgen_la-sgen-mono.lo
{standard input}:390:Parameter syntax error (parameter 1)
{standard input}:391:Parameter syntax error (parameter 1)
{standard input}:392:Parameter syntax error (parameter 1)
{standard input}:393:Parameter syntax error (parameter 1)
{standard input}:394:Parameter syntax error (parameter 1)
{standard input}:395:Parameter syntax error (parameter 1)
{standard input}:396:Parameter syntax error (parameter 1)
{standard input}:397:Parameter syntax error (parameter 1)
{standard input}:398:Parameter syntax error (parameter 1)
{standard input}:399:Parameter syntax error (parameter 1)
{standard input}:400:Parameter syntax error (parameter 1)
{standard input}:401:Parameter syntax error (parameter 1)
{standard input}:402:Parameter syntax error (parameter 1)
{standard input}:403:Parameter syntax error (parameter 1)
{standard input}:404:Parameter syntax error (parameter 1)
{standard input}:405:Parameter syntax error (parameter 1)
{standard input}:406:Parameter syntax error (parameter 1)
{standard input}:407:Parameter syntax error (parameter 1)
{standard input}:408:Parameter syntax error (parameter 1)
{standard input}:409:Parameter syntax error (parameter 1)
{standard input}:410:Parameter syntax error (parameter 1)
{standard input}:411:Parameter syntax error (parameter 1)
{standard input}:412:Parameter syntax error (parameter 1)
{standard input}:413:Parameter syntax error (parameter 1)
{standard input}:414:Parameter syntax error (parameter 1)
{standard input}:415:Parameter syntax error (parameter 1)
{standard input}:416:Parameter syntax error (parameter 1)
{standard input}:417:Parameter syntax error (parameter 1)
{standard input}:418:Parameter syntax error (parameter 1)
{standard input}:419:Parameter syntax error (parameter 1)
{standard input}:420:Parameter syntax error (parameter 1)
{standard input}:421:Parameter syntax error (parameter 1)
{standard input}:422:Parameter syntax error (parameter 1)
{standard input}:423:Parameter syntax error (parameter 1)
{standard input}:424:Parameter syntax error (parameter 1)
{standard input}:425:Parameter syntax error (parameter 1)
{standard input}:426:Parameter syntax error (parameter 1)
{standard input}:427:Parameter syntax error (parameter 1)
{standard input}:428:Parameter syntax error (parameter 1)
{standard input}:429:Parameter syntax error (parameter 1)
{standard input}:430:Parameter syntax error (parameter 1)
{standard input}:431:Parameter syntax error (parameter 1)
{standard input}:432:Parameter syntax error (parameter 1)
{standard input}:433:Parameter syntax error (parameter 1)
{standard input}:434:Parameter syntax error (parameter 1)
{standard input}:435:Parameter syntax error (parameter 1)
{standard input}:436:Parameter syntax error (parameter 1)
{standard input}:437:Parameter syntax error (parameter 1)
{standard input}:438:Parameter syntax error (parameter 1)
{standard input}:439:Parameter syntax error (parameter 1)
{standard input}:440:Parameter syntax error (parameter 1)
{standard input}:441:Parameter syntax error (parameter 1)
{standard input}:442:Parameter syntax error (parameter 1)
{standard input}:443:Parameter syntax error (parameter 1)
{standard input}:444:Parameter syntax error (parameter 1)
{standard input}:445:Parameter syntax error (parameter 1)
{standard input}:446:Parameter syntax error (parameter 1)
{standard input}:447:Parameter syntax error (parameter 1)
{standard input}:448:Parameter syntax error (parameter 1)
{standard input}:449:Parameter syntax error (parameter 1)
{standard input}:450:Parameter syntax error (parameter 1)
{standard input}:451:Parameter syntax error (parameter 1)
{standard input}:452:Parameter syntax error (parameter 1)
{standard input}:453:Parameter syntax error (parameter 1)
{standard input}:454:Parameter syntax error (parameter 1)
{standard input}:455:Parameter syntax error (parameter 1)
make[3]: *** [libmonoruntimesgen_la-sgen-stw.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
barracuda156 commented 1 year ago

There have been a number of breaking commits for macOS PPC. This one broke ppc assembler: https://github.com/mono/mono/commit/f0a2c8ef306c93f9cfc38e4e0d802a590b33e5ee

I suspect these are wrong too: https://github.com/mono/mono/commit/02cdf6abca826279530ff9d89715a743130d127c (very likely wrong) https://github.com/mono/mono/commit/8332185abf23e2f27a536e6b7a08310aba8564fb https://github.com/mono/mono/commit/be104078673d2202c5cce85e81a3691b24265a68

marek-safar commented 1 year ago

@barracuda156 would you be interested in making PR to address the problems?

barracuda156 commented 1 year ago

@barracuda156 would you be interested in making PR to address the problems?

@marek-safar Three issues fixed, rebuilding now again. Let me reach at least the successful build, otherwise we gonna need many incremental PRs.

P. S. At the moment I am not sure if r11 vs r12 issue is consequential. If it is (likely so, even if not immediately obvious), I may need some help to make it neatly: we cannot just revert https://github.com/mono/mono/commit/02cdf6abca826279530ff9d89715a743130d127c since ppc64le needs it, so register definitions should be set in some header globally, so that macOS picks r11 and other PPC picks r12.

barracuda156 commented 1 year ago

Upon fixing the errors above I ended up with this:

Undefined symbols:
  "_mono_mach_arch_get_mcontext_size", referenced from:
      _mono_threads_suspend_begin_async_resume in libmonoutils.a(libmonoutils_la-mono-threads-mach.o)
  "_mono_mach_arch_get_thread_states", referenced from:
      _mono_thread_state_init_from_handle in libmini.a(libmini_la-mini-darwin.o)
      _mono_threads_suspend_begin_async_resume in libmonoutils.a(libmonoutils_la-mono-threads-mach.o)
  "_mono_mach_arch_get_thread_fpstate_size", referenced from:
      _mono_thread_state_init_from_handle in libmini.a(libmini_la-mini-darwin.o)
      _mono_threads_suspend_begin_async_resume in libmonoutils.a(libmonoutils_la-mono-threads-mach.o)
  "_mono_mach_arch_mcontext_to_thread_states", referenced from:
      _mono_threads_suspend_begin_async_resume in libmonoutils.a(libmonoutils_la-mono-threads-mach.o)
  "_mono_mach_arch_thread_states_to_mono_context", referenced from:
      _mono_thread_state_init_from_handle in libmini.a(libmini_la-mini-darwin.o)
  "___sync_val_compare_and_swap_8", referenced from:
      _mono_atomic_cas_i64 in libmonoutils.a(libmonoutils_la-atomic.o)
  "_mono_mach_arch_thread_states_to_mcontext", referenced from:
      _mono_threads_suspend_begin_async_resume in libmonoutils.a(libmonoutils_la-mono-threads-mach.o)
  "_mono_mach_arch_set_thread_states", referenced from:
      _mono_threads_suspend_begin_async_resume in libmonoutils.a(libmonoutils_la-mono-threads-mach.o)
  "_mono_mach_arch_get_thread_state_size", referenced from:
      _mono_thread_state_init_from_handle in libmini.a(libmini_la-mini-darwin.o)
      _mono_threads_suspend_begin_async_resume in libmonoutils.a(libmonoutils_la-mono-threads-mach.o)
ld: symbol(s) not found
collect2: error: ld returned 1 exit status
make[4]: *** [mono-boehm] Error 1
make[4]: *** Waiting for unfinished jobs....
Undefined symbols:
  "_mono_mach_arch_get_mcontext_size", referenced from:
      _mono_threads_suspend_begin_async_resume in libmonoutils.a(libmonoutils_la-mono-threads-mach.o)
  "_mono_mach_arch_get_thread_states", referenced from:
      _mono_thread_state_init_from_handle in libmini.a(libmini_la-mini-darwin.o)
      _mono_threads_suspend_begin_async_resume in libmonoutils.a(libmonoutils_la-mono-threads-mach.o)
  "_mono_mach_arch_get_thread_fpstate_size", referenced from:
      _mono_thread_state_init_from_handle in libmini.a(libmini_la-mini-darwin.o)
      _mono_threads_suspend_begin_async_resume in libmonoutils.a(libmonoutils_la-mono-threads-mach.o)
  "_mono_mach_arch_mcontext_to_thread_states", referenced from:
      _mono_threads_suspend_begin_async_resume in libmonoutils.a(libmonoutils_la-mono-threads-mach.o)
  "_mono_mach_arch_thread_states_to_mono_context", referenced from:
      _mono_thread_state_init_from_handle in libmini.a(libmini_la-mini-darwin.o)
  "___sync_val_compare_and_swap_8", referenced from:
      _mono_atomic_cas_i64 in libmonoutils.a(libmonoutils_la-atomic.o)
  "_mono_mach_arch_thread_states_to_mcontext", referenced from:
      _mono_threads_suspend_begin_async_resume in libmonoutils.a(libmonoutils_la-mono-threads-mach.o)
  "_mono_mach_arch_set_thread_states", referenced from:
      _mono_threads_suspend_begin_async_resume in libmonoutils.a(libmonoutils_la-mono-threads-mach.o)
  "_mono_mach_arch_get_thread_state_size", referenced from:
      _mono_thread_state_init_from_handle in libmini.a(libmini_la-mini-darwin.o)
      _mono_threads_suspend_begin_async_resume in libmonoutils.a(libmonoutils_la-mono-threads-mach.o)
ld: symbol(s) not found
collect2: error: ld returned 1 exit status
barracuda156 commented 1 year ago

___sync_val_compare_and_swap_8 should be replaced with respective __atomic* builtin, then passing -latomic it will work. Need to look up other errors.

barracuda156 commented 1 year ago

Reached to here:

 if test -w /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.182/mcs; then :; else chmod -R +w /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.182/mcs; fi
cd /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.182/mcs && /usr/bin/make --no-print-directory -s NO_DIR_CHECK=1 PROFILES='binary_reference_assemblies net_4_x xbuild_12 xbuild_14              ' CC='/opt/local/bin/gcc-mp-12' all-profiles
mkdir -p -- build/deps
make[6]: posix_spawn: mcs: No such file or directory
*** The runtime 'mono' doesn't appear to be usable.
*** Trying the 'monolite-macos/1A5E0066-58DC-428A-B21C-0AD6CDAE2789' directory.
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
mkdir -p -- ../../class/lib/build-macos/tmp/
MCS     [build-macos] gensources.exe

=================================================================
    Native Crash Reporting
=================================================================
Got a segv while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

=================================================================
    Native stacktrace:
=================================================================
    0xced24 - /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.182/mono/mini/mono : 
    0xcf0f4 - /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.182/mono/mini/mono : 
    0x8da18 - /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.182/mono/mini/mono : 
    0xb28c - /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.182/mono/mini/mono : 
    0x91a8f294 - /usr/lib/libSystem.B.dylib : _sigtramp
    0xc010048 - Unknown
    0x1c8 - Unknown

P. S. On a side note, GSS linking appears broken: https://github.com/mono/mono/issues/20990#issuecomment-1537302326 I used a patch from that thread to disable GSS for now.

barracuda156 commented 1 year ago

Provisionally atomics fixed, but it still fails:

</configuration>
/bin/sh ../mkinstalldirs _tmpinst/bin
umask 22
mkdir _tmpinst
mkdir _tmpinst/bin
cp mono-wrapper _tmpinst/bin/mono
echo '#! /bin/sh' > _tmpinst/bin/ilasm ; \
    r=`pwd`; m=`cd /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.182/mcs && pwd`; \
    echo 'exec "'"$r/_tmpinst/bin/mono"'" "'"$m/ilasm/ilasm.exe"'" "$@"' >> _tmpinst/bin/ilasm ; \
    chmod +x _tmpinst/bin/ilasm
echo '#! /bin/sh' > _tmpinst/bin/csc ; \
    r=`pwd`; m=`cd /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.182/mcs && pwd`; \
    echo 'exec "'"$r/_tmpinst/bin/mono"'" "'"/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.182/mcs/class/lib/build/mcs.exe"'" "$@"' >> _tmpinst/bin/csc ; \
    chmod +x _tmpinst/bin/csc
echo '#! /bin/sh' > _tmpinst/bin/mcs ; \
    r=`pwd`; m=`cd /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.182/mcs && pwd`; \
    echo 'exec "'"$r/_tmpinst/bin/mono"'" "'"$m/class/lib/net_4_x/mcs.exe"'" "$@"' >> _tmpinst/bin/mcs ; \
    chmod +x _tmpinst/bin/mcs
echo '#! /bin/sh' > _tmpinst/bin/al ; \
    r=`pwd`; m=`cd /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.182/mcs && pwd`; \
    echo 'exec "'"$r/_tmpinst/bin/mono"'" "'"$m/class/lib/net_4_x/al.exe"'" "$@"' >> _tmpinst/bin/al ; \
    chmod +x _tmpinst/bin/al
if test -w /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.182/mcs; then :; else chmod -R +w /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.182/mcs; fi
cd /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.182/mcs && /usr/bin/make --no-print-directory -s NO_DIR_CHECK=1 PROFILES='binary_reference_assemblies net_4_x xbuild_12 xbuild_14              ' CC='/opt/local/bin/gcc-mp-12' all-profiles
mkdir -p -- build/deps
make[6]: posix_spawn: mcs: No such file or directory
*** The runtime 'mono' doesn't appear to be usable.
*** Trying the 'monolite-macos/1A5E0066-58DC-428A-B21C-0AD6CDAE2789' directory.
* Assertion at class-accessors.c:99, condition `mono_class_is_gtd (klass)' not met

=================================================================
    Native Crash Reporting
=================================================================
Got a abrt while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

=================================================================
    Native stacktrace:
=================================================================
    0xced20 - /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.182/mono/mini/mono : 
    0xcf0f0 - /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.182/mono/mini/mono : 
    0x8da08 - /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.182/mono/mini/mono : 
    0xce47c - /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.182/mono/mini/mono : 
    0xb4d294 - /usr/lib/libSystem.B.dylib : _sigtramp
    0x26d460 - /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.182/mono/mini/mono : monoeg_g_hash_table_lookup_extended

=================================================================
    Telemetry Dumper:
=================================================================
Attempted to dump for critical failure when already in dump. Error reporting crashed?
=================================================================
    External Debugger Dump:
=================================================================

=================================================================
    Basic Fault Address Reporting
=================================================================
Memory around native instruction pointer (0xb4ed48):0xb4ed38  48 00 00 04 38 00 00 25 44 00 00 02 48 00 00 08  H...8..%D...H...
0xb4ed48  48 00 00 24 7c 08 02 a6 42 9f 00 05 7d 88 02 a6  H..$|...B...}...
0xb4ed58  7c 08 03 a6 3d 8c 00 15 81 8c bd 4c 7d 89 03 a6  |...=......L}...
0xb4ed68  4e 80 04 20 4e 80 00 20 7c 08 02 a6 38 60 00 00  N.. N.. |...8`..

=================================================================
    Managed Stacktrace:
=================================================================
      at <unknown> <0xffffffff>
      at System.Collections.Generic.HashSet`1:InternalGetHashCode <0x0006c>
      at System.Collections.Generic.HashSet`1:AddIfNotPresent <0x0006c>
      at System.Collections.Generic.HashSet`1:Add <0x00028>
      at Mono.CSharp.Tokenizer:AddKeyword <0x00050>
      at Mono.CSharp.Tokenizer:.cctor <0x00214>
      at System.Object:runtime_invoke_void <0x000a0>
      at <unknown> <0xffffffff>
      at System.Object:__icall_wrapper_mono_generic_class_init <0x000d8>
      at Mono.CSharp.CSharpParser:.ctor <0x003c0>
      at Mono.CSharp.Driver:Parse <0x000b4>
      at Mono.CSharp.Driver:DoParse <0x00058>
      at Mono.CSharp.Driver:Parse <0x002b0>
      at Mono.CSharp.Driver:Parse <0x001c8>
      at Mono.CSharp.Driver:Compile <0x00254>
      at Mono.CSharp.Driver:Main <0x00204>
      at <Module>:runtime_invoke_int_object <0x00144>
=================================================================
make[8]: *** [build/deps/basic-profile-check.exe] Abort trap
*** The contents of your 'monolite-macos/1A5E0066-58DC-428A-B21C-0AD6CDAE2789' directory may be out-of-date
*** You may want to try 'make get-monolite-latest'
make[8]: *** [do-profile-check-monolite] Error 1
make[7]: *** [do-profile-check] Error 2
make[6]: *** [do-profile-check-monolite] Error 2
make[5]: *** [do-profile-check] Error 2
make[4]: *** [profile-do--build--all] Error 2
make[3]: *** [profiles-do--all] Error 2
make[2]: *** [all-mcs] Error 2
barracuda156 commented 1 year ago

Crash log from then:

Process:         mono [79835]
Path:            /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.182/mono/mini/mono
Identifier:      mono
Version:         ??? (???)
Code Type:       PPC (Native)
Parent Process:  make [79834]

Date/Time:       2023-05-09 17:07:32.648 +0800
OS Version:      Mac OS X 10.6 (10A190)
Report Version:  6

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Crashed Thread:  0

Application Specific Information:
abort() called

Thread 0 Crashed:
0   libSystem.B.dylib               0x00b4ed48 __kill + 12
1   libSystem.B.dylib               0x00bf2808 abort + 116
2   mono                            0x0008da94 mono_handle_native_crash + 544
3   mono                            0x000ce478 sigabrt_signal_handler + 108
4   libSystem.B.dylib               0x00b4d290 _sigtramp + 64
5   mono                            0x0026d45c monoeg_g_hash_table_lookup_extended + 156

Thread 1:
0   libSystem.B.dylib               0x00ad5e10 __semwait_signal + 12
1   libSystem.B.dylib               0x00b133b0 _pthread_cond_wait + 1524
2   mono                            0x0024d028 mono_os_cond_wait.constprop.0 + 32
3   mono                            0x0024d6a4 thread_func + 268
4   libSystem.B.dylib               0x00b12060 _pthread_start + 320

Thread 2:
0   libSystem.B.dylib               0x00acede8 semaphore_wait_trap + 8
1   mono                            0x002064e4 mono_os_sem_wait + 44
2   mono                            0x00207228 mono_coop_sem_wait.constprop.0 + 68
3   mono                            0x00207428 finalizer_thread + 260
4   mono                            0x001cfb64 start_wrapper + 412
5   libSystem.B.dylib               0x00b12060 _pthread_start + 320

Thread 3:
0   libSystem.B.dylib               0x00b11878 kevent + 12
1   libSystem.B.dylib               0x00c49a38 dispatch_wake_from_pthreads + 256

Thread 0 crashed with PPC Thread State 32:
  srr0: 0x00b4ed48  srr1: 0x0200d030   dar: 0x00ca1788 dsisr: 0x0a000000
    r0: 0x00000025    r1: 0xbfffc250    r2: 0x00000008    r3: 0x00000000
    r4: 0x00000000    r5: 0x00000001    r6: 0x00000000    r7: 0x00000002
    r8: 0x3d0a0000    r9: 0x00cd9edc   r10: 0x00b1abc4   r11: 0x00c99020
   r12: 0x00b4ed34   r13: 0x00000000   r14: 0x00000000   r15: 0x0236d9c8
   r16: 0x0236d99c   r17: 0x003325d8   r18: 0x040821a8   r19: 0x02302110
   r20: 0xbfffd3f8   r21: 0xbfffd404   r22: 0xbfffd408   r23: 0x00000000
   r24: 0x040947f0   r25: 0x04019c00   r26: 0x02301ba0   r27: 0xbfffc5c0
   r28: 0x0028a78f   r29: 0xbfffc398   r30: 0x00c6d36c   r31: 0x00bf27a0
    cr: 0x42004432   xer: 0x00000000    lr: 0x00bf280c   ctr: 0x00b4ed34
vrsave: 0x00000000

Binary Images:
    0x1000 -   0x346fff +mono ??? (???) <9c932dee44128448e7e96fe0177e10ca> /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.182/mono/mini/mono
  0x4a4000 -   0x4b7ffc +libz.1.dylib ??? (???) <c697fd0e0e4f9423b001dfffce0f46c3> /opt/local/lib/libz.1.dylib
  0x4bb000 -   0x4c0fff +libMacportsLegacySupport.dylib ??? (???) <866c1cae762ea8789473e05e97b26a5b> /opt/local/lib/libMacportsLegacySupport.dylib
  0x4c4000 -   0x4c6fff +libatomic.1.dylib ??? (???) <e027bd33ead85ee6229c3a8c013f1d0c> /opt/local/lib/libgcc/libatomic.1.dylib
  0x4ca000 -   0x622ff7  com.apple.CoreFoundation 6.6 (511.1) <b82d52070a5949f92c5001e06d67044b> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
  0x72c000 -   0x984fff  com.apple.Foundation 6.6 (711.1) <42ee053ddba592040925af9eb9542462> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
  0xace000 -   0xc98fe7  libSystem.B.dylib ??? (???) <420b38fe0fa0944f6f5bc4840bf29a4e> /usr/lib/libSystem.B.dylib
  0xd20000 -   0xda1fe7  libobjc.A.dylib ??? (???) <bb09ce82013fa9c4a4010c58fe6c1e10> /usr/lib/libobjc.A.dylib
  0xdb3000 -   0xdbefff  libgcc_s.1.dylib ??? (???) <1eb48ae6b07dcb096bda0433409722c1> /usr/lib/libgcc_s.1.dylib
  0xdc3000 -   0xdc8ff6  libmathCommon.A.dylib ??? (???) <e166c8e59a80a82b4504b1dd43d1f50a> /usr/lib/system/libmathCommon.A.dylib
  0xdcc000 -   0xdffff1  libauto.dylib ??? (???) <2848423526fb9c0f381c6ceacc4f2c27> /usr/lib/libauto.dylib
  0xe0b000 -   0xf94fff  libicucore.A.dylib ??? (???) <28f339176d9e26b663f19c1cad91784e> /usr/lib/libicucore.A.dylib
  0xfe4000 -   0xff2fff  libz.1.dylib ??? (???) <c296d00fd65aa7271f3d5592c25c0f96> /usr/lib/libz.1.dylib
  0xff7000 -  0x1061ffb  libstdc++.6.dylib ??? (???) <5824de0c43054a01c556e9ef288f33c7> /usr/lib/libstdc++.6.dylib
 0x10ab000 -  0x11c6fff  libxml2.2.dylib ??? (???) <2bdb2ca8d4aabba550ba9f2111ebf46a> /usr/lib/libxml2.2.dylib
 0x11e9000 -  0x12a9ffb  com.apple.CFNetwork 417.1 (417.1) <911e0fa87591b77e8bb8ec4759941216> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
 0x1311000 -  0x134cfff  com.apple.SystemConfiguration 1.10 (1.10) <2daf422a1a7ca90ba32720000e56b3aa> /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
 0x1368000 -  0x1596ff7  com.apple.security 6.0 (34772) <df4f0710dfee6e04e7fdba557064977b> /System/Library/Frameworks/Security.framework/Versions/A/Security
 0x16ad000 -  0x16adffa  com.apple.CoreServices 41 (41) <97bf3903384c706ba0f7d19577f0ef8c> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
 0x16c3000 -  0x1774ff7  libsqlite3.0.dylib ??? (???) <cc6135a5433e43988bf825e149e47483> /usr/lib/libsqlite3.0.dylib
 0x1780000 -  0x1aa6ff7  com.apple.CoreServices.CarbonCore 818 (818) <3e631022aef7f9d15373e1f56e74ff00> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
 0x1b2f000 -  0x1b6ffff  com.apple.Metadata 10.6.0 (429.1) <d8b50a8ca605800f8f36caf448daed42> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
 0x1b88000 -  0x1c60fff  com.apple.CoreServices.OSServices 310 (310) <633ea4081155a516c80bf948f004d235> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
 0x1ccb000 -  0x1d48ffb  com.apple.SearchKit 1.3.0 (1.3.0) <4c7ffa79c1cd48d28eb165768fbfc2f4> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
 0x1d87000 -  0x1dbffff  com.apple.AE 464 (464) <492b7cdb81e64fca5af300b0c231ebec> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
 0x1dd7000 -  0x1e6eff7  com.apple.LaunchServices 318.1 (318.1) <5ee43f629f636d1863e73dc312c736c2> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
 0x1eb4000 -  0x1ed7fff  com.apple.DictionaryServices 1.0.0 (1.0.0) <f2f1f85469f3036ec9890bfa888edbe2> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices
 0x1eed000 -  0x1f43ff3  com.apple.framework.IOKit 1.5.1 (???) <21f9b751b7578a33306804af2c6ded8d> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
 0x1f5c000 -  0x1f65fff  com.apple.DiskArbitration 2.2.1 (2.2.1) <daa422fc5a934366c8f0a12204b46cb1> /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
 0x1f6e000 -  0x1f80fff  libbsm.0.dylib ??? (???) <c43c47af4211639e8828d3e8ff93a019> /usr/lib/libbsm.0.dylib
 0x1f86000 -  0x1f93ffe  NetFS ??? (???) <5125b2c825637b243afa1ea942ba8220> /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS
 0x1f9a000 -  0x1fa3ffc  libkxld.dylib ??? (???) <725cd6e644549962b0110493f4bb7c08> /usr/lib/system/libkxld.dylib
 0x1fa7000 -  0x1fd3fff  libxslt.1.dylib ??? (???) <da4552da93bf856897f6b399bb10806d> /usr/lib/libxslt.1.dylib
 0x1ff1000 -  0x1ff2ffc  dns.so ??? (???) <d61372b816f011ea19a6b524c61f14a7> /usr/lib/info/dns.so
 0x2100000 -  0x2120fff  libresolv.9.dylib ??? (???) <2b57f734cfd1eb7ebf2eb9a4bbbc5a23> /usr/lib/libresolv.9.dylib
 0x3f00000 -  0x3fb1ffd +libmono-native.0.dylib ??? (???) <23707bae58308d43ede17b5a2f6a7c15> /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.182/mono/native/.libs/libmono-native.0.dylib
0x8fe00000 - 0x8fe31143  dyld 113.0 (???) <ee555e655e1cf66cac80728801add419> /usr/lib/dyld
0xffff8000 - 0xffff9703  libSystem.B.dylib ??? (???) /usr/lib/libSystem.B.dylib
barracuda156 commented 3 months ago

@marek-safar So it fails at the point of trying to use a pre-built mcs binary instead of building it from source. Is this a correct behavior? I would not expect any pre-built binaries to work on ppc (or any non-mainstream arch); likely we need to build everything from sources.

The pre-built binary appears to be for x86:

36-25% file /Users/svacchanda/Downloads/monolite-macos-1A5E0066-58DC-428A-B21C-0AD6CDAE2789-latest/mcs.exe 
\/Users/svacchanda/Downloads/monolite-macos-1A5E0066-58DC-428A-B21C-0AD6CDAE2789-latest/mcs.exe: PE32 executable (console) Intel 80386 Mono/.Net assembly, for MS Windows, 3 sections

Here is what my mono shows:

36-25% /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.206/mono/mini/mono --version
Mono JIT compiler version 6.12.0 (explicit/0cbf0e290c3 Sat Jun 29 11:29:22 CST 2024)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
    TLS:           __thread
    SIGSEGV:       normal
    Notification:  kqueue
    Architecture:  ppc
    Disabled:      none
    Misc:          softdebug 
    Interpreter:   yes
    Suspend:       preemptive
    GC:            sgen
barracuda156 commented 3 months ago

@marek-safar I was able to build it with my old patches, but passing --disable-mcs-build to configure. As earlier, I also disable dtrace and gss.

Is it of some use without mcs? :)

barracuda156 commented 3 months ago

Trying to use with some builds I get this error:

The assembly mscorlib.dll was not found or could not be loaded.
It should have been installed in the `/opt/local/lib/mono/4.5/mscorlib.dll' directory.

Indeed, there is no such library:

36-25% port contents mono
Port mono @6.12.0.206_0 contains:
  /opt/local/bin/al
  /opt/local/bin/al2
  /opt/local/bin/csc
  /opt/local/bin/csi
  /opt/local/bin/gacutil
  /opt/local/bin/gacutil2
  /opt/local/bin/ilasm
  /opt/local/bin/makecert
  /opt/local/bin/mcs
  /opt/local/bin/mdassembler
  /opt/local/bin/mdoc-assemble
  /opt/local/bin/mdoc-export-html
  /opt/local/bin/mdoc-export-msxdoc
  /opt/local/bin/mdoc-update
  /opt/local/bin/mdoc-validate
  /opt/local/bin/mdvalidater
  /opt/local/bin/mkbundle
  /opt/local/bin/mono
  /opt/local/bin/mono-boehm
  /opt/local/bin/mono-configuration-crypto
  /opt/local/bin/mono-find-provides
  /opt/local/bin/mono-find-requires
  /opt/local/bin/mono-gdb.py
  /opt/local/bin/mono-hang-watchdog
  /opt/local/bin/mono-heapviz
  /opt/local/bin/mono-package-runtime
  /opt/local/bin/mono-service
  /opt/local/bin/mono-service2
  /opt/local/bin/mono-sgen
  /opt/local/bin/mono-sgen-gdb.py
  /opt/local/bin/mono-test-install
  /opt/local/bin/monodis
  /opt/local/bin/monodocer
  /opt/local/bin/monodocs2html
  /opt/local/bin/monodocs2slashdoc
  /opt/local/bin/monop
  /opt/local/bin/monop2
  /opt/local/bin/mprof-report
  /opt/local/bin/pedump
  /opt/local/bin/peverify
  /opt/local/bin/resgen
  /opt/local/bin/resgen2
  /opt/local/bin/sgen-grep-binprot
  /opt/local/bin/sn
  /opt/local/bin/vbc
  /opt/local/bin/wsdl
  /opt/local/bin/wsdl2
  /opt/local/etc/mono/2.0/Browsers/Compat.browser
  /opt/local/etc/mono/2.0/DefaultWsdlHelpGenerator.aspx
  /opt/local/etc/mono/2.0/machine.config
  /opt/local/etc/mono/2.0/settings.map
  /opt/local/etc/mono/2.0/web.config
  /opt/local/etc/mono/4.0/Browsers/Compat.browser
  /opt/local/etc/mono/4.0/DefaultWsdlHelpGenerator.aspx
  /opt/local/etc/mono/4.0/machine.config
  /opt/local/etc/mono/4.0/settings.map
  /opt/local/etc/mono/4.0/web.config
  /opt/local/etc/mono/4.5/Browsers/Compat.browser
  /opt/local/etc/mono/4.5/DefaultWsdlHelpGenerator.aspx
  /opt/local/etc/mono/4.5/machine.config
  /opt/local/etc/mono/4.5/settings.map
  /opt/local/etc/mono/4.5/web.config
  /opt/local/etc/mono/browscap.ini
  /opt/local/etc/mono/config
  /opt/local/include/mono-2.0/mono/cil/opcode.def
  /opt/local/include/mono-2.0/mono/jit/jit.h
  /opt/local/include/mono-2.0/mono/metadata/appdomain.h
  /opt/local/include/mono-2.0/mono/metadata/assembly.h
  /opt/local/include/mono-2.0/mono/metadata/attrdefs.h
  /opt/local/include/mono-2.0/mono/metadata/blob.h
  /opt/local/include/mono-2.0/mono/metadata/class.h
  /opt/local/include/mono-2.0/mono/metadata/debug-helpers.h
  /opt/local/include/mono-2.0/mono/metadata/debug-mono-symfile.h
  /opt/local/include/mono-2.0/mono/metadata/environment.h
  /opt/local/include/mono-2.0/mono/metadata/exception.h
  /opt/local/include/mono-2.0/mono/metadata/image.h
  /opt/local/include/mono-2.0/mono/metadata/loader.h
  /opt/local/include/mono-2.0/mono/metadata/metadata.h
  /opt/local/include/mono-2.0/mono/metadata/mono-config.h
  /opt/local/include/mono-2.0/mono/metadata/mono-debug.h
  /opt/local/include/mono-2.0/mono/metadata/mono-gc.h
  /opt/local/include/mono-2.0/mono/metadata/object-forward.h
  /opt/local/include/mono-2.0/mono/metadata/object.h
  /opt/local/include/mono-2.0/mono/metadata/opcodes.h
  /opt/local/include/mono-2.0/mono/metadata/profiler-events.h
  /opt/local/include/mono-2.0/mono/metadata/profiler.h
  /opt/local/include/mono-2.0/mono/metadata/reflection.h
  /opt/local/include/mono-2.0/mono/metadata/row-indexes.h
  /opt/local/include/mono-2.0/mono/metadata/sgen-bridge.h
  /opt/local/include/mono-2.0/mono/metadata/threads.h
  /opt/local/include/mono-2.0/mono/metadata/tokentype.h
  /opt/local/include/mono-2.0/mono/metadata/verify.h
  /opt/local/include/mono-2.0/mono/utils/mono-counters.h
  /opt/local/include/mono-2.0/mono/utils/mono-dl-fallback.h
  /opt/local/include/mono-2.0/mono/utils/mono-error.h
  /opt/local/include/mono-2.0/mono/utils/mono-forward.h
  /opt/local/include/mono-2.0/mono/utils/mono-jemalloc.h
  /opt/local/include/mono-2.0/mono/utils/mono-logger.h
  /opt/local/include/mono-2.0/mono/utils/mono-publib.h
  /opt/local/lib/libMonoPosixHelper.a
  /opt/local/lib/libMonoPosixHelper.dylib
  /opt/local/lib/libMonoPosixHelper.la
  /opt/local/lib/libMonoSupportW.a
  /opt/local/lib/libMonoSupportW.dylib
  /opt/local/lib/libMonoSupportW.la
  /opt/local/lib/libikvm-native.a
  /opt/local/lib/libikvm-native.dylib
  /opt/local/lib/libikvm-native.la
  /opt/local/lib/libmono-2.0.1.dylib
  /opt/local/lib/libmono-2.0.a
  /opt/local/lib/libmono-2.0.dylib
  /opt/local/lib/libmono-2.0.la
  /opt/local/lib/libmono-native.0.dylib
  /opt/local/lib/libmono-native.a
  /opt/local/lib/libmono-native.dylib
  /opt/local/lib/libmono-native.la
  /opt/local/lib/libmono-profiler-aot-static.a
  /opt/local/lib/libmono-profiler-aot-static.la
  /opt/local/lib/libmono-profiler-aot.0.dylib
  /opt/local/lib/libmono-profiler-aot.a
  /opt/local/lib/libmono-profiler-aot.dylib
  /opt/local/lib/libmono-profiler-aot.la
  /opt/local/lib/libmono-profiler-coverage-static.a
  /opt/local/lib/libmono-profiler-coverage-static.la
  /opt/local/lib/libmono-profiler-coverage.0.dylib
  /opt/local/lib/libmono-profiler-coverage.a
  /opt/local/lib/libmono-profiler-coverage.dylib
  /opt/local/lib/libmono-profiler-coverage.la
  /opt/local/lib/libmono-profiler-log-static.a
  /opt/local/lib/libmono-profiler-log-static.la
  /opt/local/lib/libmono-profiler-log.0.dylib
  /opt/local/lib/libmono-profiler-log.a
  /opt/local/lib/libmono-profiler-log.dylib
  /opt/local/lib/libmono-profiler-log.la
  /opt/local/lib/libmonoboehm-2.0.1.dylib
  /opt/local/lib/libmonoboehm-2.0.a
  /opt/local/lib/libmonoboehm-2.0.dylib
  /opt/local/lib/libmonoboehm-2.0.la
  /opt/local/lib/libmonosgen-2.0.1.dylib
  /opt/local/lib/libmonosgen-2.0.a
  /opt/local/lib/libmonosgen-2.0.dylib
  /opt/local/lib/libmonosgen-2.0.la
  /opt/local/lib/mono/lldb/mono.py
  /opt/local/lib/pkgconfig/aspnetwebstack.pc
  /opt/local/lib/pkgconfig/cecil.pc
  /opt/local/lib/pkgconfig/dotnet.pc
  /opt/local/lib/pkgconfig/dotnet35.pc
  /opt/local/lib/pkgconfig/mono-2.pc
  /opt/local/lib/pkgconfig/mono-cairo.pc
  /opt/local/lib/pkgconfig/mono-lineeditor.pc
  /opt/local/lib/pkgconfig/mono-options.pc
  /opt/local/lib/pkgconfig/mono.pc
  /opt/local/lib/pkgconfig/monodoc.pc
  /opt/local/lib/pkgconfig/monosgen-2.pc
  /opt/local/lib/pkgconfig/reactive.pc
  /opt/local/lib/pkgconfig/system.web.extensions.design_1.0.pc
  /opt/local/lib/pkgconfig/system.web.extensions_1.0.pc
  /opt/local/lib/pkgconfig/system.web.mvc.pc
  /opt/local/lib/pkgconfig/system.web.mvc2.pc
  /opt/local/lib/pkgconfig/system.web.mvc3.pc
  /opt/local/lib/pkgconfig/wcf.pc
  /opt/local/lib/pkgconfig/xbuild12.pc
  /opt/local/share/doc/mono/COPYING.LIB
  /opt/local/share/doc/mono/NEWS
  /opt/local/share/doc/mono/README.md
  /opt/local/share/man/man1/al.1.gz
  /opt/local/share/man/man1/aprofutil.1.gz
  /opt/local/share/man/man1/cccheck.1.gz
  /opt/local/share/man/man1/ccrewrite.1.gz
  /opt/local/share/man/man1/cert-sync.1.gz
  /opt/local/share/man/man1/cert2spc.1.gz
  /opt/local/share/man/man1/certmgr.1.gz
  /opt/local/share/man/man1/chktrust.1.gz
  /opt/local/share/man/man1/cilc.1.gz
  /opt/local/share/man/man1/crlupdate.1.gz
  /opt/local/share/man/man1/csharp.1.gz
  /opt/local/share/man/man1/disco.1.gz
  /opt/local/share/man/man1/dtd2xsd.1.gz
  /opt/local/share/man/man1/gacutil.1.gz
  /opt/local/share/man/man1/genxs.1.gz
  /opt/local/share/man/man1/httpcfg.1.gz
  /opt/local/share/man/man1/ilasm.1.gz
  /opt/local/share/man/man1/illinkanalyzer.1.gz
  /opt/local/share/man/man1/lc.1.gz
  /opt/local/share/man/man1/macpack.1.gz
  /opt/local/share/man/man1/makecert.1.gz
  /opt/local/share/man/man1/mconfig.1.gz
  /opt/local/share/man/man1/mcs.1.gz
  /opt/local/share/man/man1/mdassembler.1.gz
  /opt/local/share/man/man1/mdb2ppdb.1.gz
  /opt/local/share/man/man1/mdoc-assemble.1.gz
  /opt/local/share/man/man1/mdoc-export-html.1.gz
  /opt/local/share/man/man1/mdoc-export-msxdoc.1.gz
  /opt/local/share/man/man1/mdoc-update.1.gz
  /opt/local/share/man/man1/mdoc-validate.1.gz
  /opt/local/share/man/man1/mdoc.1.gz
  /opt/local/share/man/man1/mdvalidater.1.gz
  /opt/local/share/man/man1/mkbundle.1.gz
  /opt/local/share/man/man1/mono-api-info.1.gz
  /opt/local/share/man/man1/mono-cil-strip.1.gz
  /opt/local/share/man/man1/mono-configuration-crypto.1.gz
  /opt/local/share/man/man1/mono-profilers.1.gz
  /opt/local/share/man/man1/mono-service.1.gz
  /opt/local/share/man/man1/mono-shlib-cop.1.gz
  /opt/local/share/man/man1/mono-symbolicate.1.gz
  /opt/local/share/man/man1/mono-xmltool.1.gz
  /opt/local/share/man/man1/mono.1.gz
  /opt/local/share/man/man1/monodis.1.gz
  /opt/local/share/man/man1/monodocer.1.gz
  /opt/local/share/man/man1/monodocs2html.1.gz
  /opt/local/share/man/man1/monolinker.1.gz
  /opt/local/share/man/man1/monop.1.gz
  /opt/local/share/man/man1/mozroots.1.gz
  /opt/local/share/man/man1/mprof-report.1.gz
  /opt/local/share/man/man1/pdb2mdb.1.gz
  /opt/local/share/man/man1/permview.1.gz
  /opt/local/share/man/man1/resgen.1.gz
  /opt/local/share/man/man1/secutil.1.gz
  /opt/local/share/man/man1/setreg.1.gz
  /opt/local/share/man/man1/sgen.1.gz
  /opt/local/share/man/man1/signcode.1.gz
  /opt/local/share/man/man1/sn.1.gz
  /opt/local/share/man/man1/soapsuds.1.gz
  /opt/local/share/man/man1/sqlsharp.1.gz
  /opt/local/share/man/man1/wsdl.1.gz
  /opt/local/share/man/man1/xbuild.1.gz
  /opt/local/share/man/man1/xsd.1.gz
  /opt/local/share/man/man5/mdoc.5.gz
  /opt/local/share/man/man5/mono-config.5.gz
  /opt/local/share/mono-2.0/mono/cil/cil-opcodes.xml
  /opt/local/share/mono-2.0/mono/eglib/eglib-config.h
  /opt/local/share/mono-2.0/mono/profiler/mono-profiler-coverage.suppression

Can I use some other binary in place of mcs?

barracuda156 commented 3 months ago

Okay, apparently we do need mcs, so the target has to be fixed and not disabled.

@alarixnia Have you tried building this on ppc via pkgsrc? Maybe you could advise something. The only relevant issue at the moment is to fix mcs, all macOS SDK issues are sorted, I believe, and mono itself builds.

barracuda156 commented 3 months ago

Ok, perhaps one thing we need to change is switch TLS to pthread, see: https://github.com/mono/mono/commit/5d96019cc21ef7228d89becac3a69870c797e5f9

barracuda156 commented 3 months ago

@NattyNarwhal Maybe you could take a look?