Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
This commit could be breaking, since it was done for the sake of 64-bit systems and untested on 32-bit: https://github.com/mono/mono/commit/f37d7a9fcea4b0ece5ac461506d6029e37373fae

(I have no idea if it is correct or not, so just keep in mind it may be worth trying to revert it.)

UPD. This is wrong and should be reverted or fixed: https://github.com/mono/mono/commit/2f2771fcfa22ac16a24a6a1ff2554440e5de29ca

Looking further at Mono code, I am always suspicious of commits claiming to fix something, since they often break something else which a commit author is unaware of or does not care about. Look at this, for example: https://github.com/mono/mono/commit/0d464be2b3ae6f7ddb9a3f3c97622a988be8ae33
It does not do what it claims in the title: while perhaps fixing ELF ABI2 compliance, it also modifies unrelated ppc code in few instances. Are those changes actually correct? I have no idea, but we can be sure they were never tested outside of whatever Linux ABI2 was tested on.
Assuming Mono did work on Darwin ppc at some point of time (the latest they have a binary for is 2.10.5), any changes to assembler code or function conventions are potentially breaking, since obviously nothing was ever tested ever since.

UPD. Also this may or may not be okay: https://github.com/mono/mono/commit/ca47362a921ba3ce58b2ae75b319d06b74feef1e
And this:
 
Last edited:
Ok, gcc13 build started, so it will be about 4 hrs till I can deal with building other stuff.

I will try to write some stuff in the meanwhile to specify what is to be used, that will save some time and nerves, hopefully LOL

Could you confirm if you face the same issues with the correct Xcode being installed? If yes, I will try to reproduce that on a PowerBook.
I'm going to be away from my powermac for a few days, but when I have access again I'll perform another 10.6 install and report back to you.

Thanks again for all your work on getting mono functioning on ppc again! This is turning out to be an adventure for sure :^)
 
I'm going to be away from my powermac for a few days, but when I have access again I'll perform another 10.6 install and report back to you.

Thanks again for all your work on getting mono functioning on ppc again! This is turning out to be an adventure for sure :^)

It should work with Xcode from 10a190. Once you get it installed, my MacPorts should work as well, and I have gcc updated to 13.3.0 (perhaps will move gcc-powerpc to 15.0.0 then in a few days).

Unfortunately, Mono upstream is not too active with replying, and we may need their help to sort this out. I will rebuild the thing today before going home, still busy with other stuff (gcc done, of course).
 
As of now, Mono still fails identically:
Code:
/bin/sh ../mkinstalldirs _tmpinst/bin
mkdir -p -- _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.206/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.206/mcs && pwd`; \
    echo 'exec "'"$r/_tmpinst/bin/mono"'" "'"/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.206/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.206/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.206/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.206/mcs; then :; else chmod -R +w /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.206/mcs; fi
cd /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.206/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-13' all-profiles
mkdir -p -- build/deps
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.
make[6]: *** [build/deps/basic-profile-check.exe] Error 1
*** Downloading bootstrap required 'monolite-macos/1A5E0066-58DC-428A-B21C-0AD6CDAE2789'
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.
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.
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.
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.
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.
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.
Makefile:20: warning: overriding commands for target `test-local'
../../build/library.make:208: warning: ignoring old commands for target `test-local'
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.
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.
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.
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.
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.
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.
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.
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.
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.
--2024-07-01 23:25:29--  https://download.mono-project.com/monolite/monolite-macos-1A5E0066-58DC-428A-B21C-0AD6CDAE2789-latest.tar.gz
Resolving download.mono-project.com (download.mono-project.com)... 13.107.246.73
Connecting to download.mono-project.com (download.mono-project.com)|13.107.246.73|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5358294 (5.1M) [application/gzip]
Saving to: ‘STDOUT’

     0K .......... .......... .......... .......... ..........  0% 1.08M 5s
    50K .......... .......... .......... .......... ..........  1%  308K 11s
   100K .......... .......... .......... .......... ..........  2% 6.04M 7s
   150K .......... .......... .......... .......... ..........  3%  254K 10s
   200K .......... .......... .......... .......... ..........  4% 7.34M 8s
   250K .......... .......... .......... .......... ..........  5% 2.46M 7s
   300K .......... .......... .......... .......... ..........  6%  827K 7s
   350K .......... .......... .......... .......... ..........  7%  408K 8s
   400K .......... .......... .......... .......... ..........  8% 8.13M 7s
   450K .......... .......... .......... .......... ..........  9% 8.70M 6s
   500K .......... .......... .......... .......... .......... 10% 3.39M 6s
   550K .......... .......... .......... .......... .......... 11% 14.8M 5s
   600K .......... .......... .......... .......... .......... 12% 15.3M 5s
   650K .......... .......... .......... .......... .......... 13% 14.0M 4s
   700K .......... .......... .......... .......... .......... 14% 15.9M 4s
   750K .......... .......... .......... .......... .......... 15% 3.33M 4s
   800K .......... .......... .......... .......... .......... 16% 15.1M 4s
   850K .......... .......... .......... .......... .......... 17% 13.0M 3s
   900K .......... .......... .......... .......... .......... 18% 12.0M 3s
   950K .......... .......... .......... .......... .......... 19% 11.4M 3s
  1000K .......... .......... .......... .......... .......... 20% 11.5M 3s
  1050K .......... .......... .......... .......... .......... 21% 3.36M 3s
  1100K .......... .......... .......... .......... .......... 21% 13.9M 3s
  1150K .......... .......... .......... .......... .......... 22% 11.3M 2s
  1200K .......... .......... .......... .......... .......... 23% 14.4M 2s
  1250K .......... .......... .......... .......... .......... 24% 15.6M 2s
  1300K .......... .......... .......... .......... .......... 25% 4.00M 2s
  1350K .......... .......... .......... .......... .......... 26% 14.7M 2s
  1400K .......... .......... .......... .......... .......... 27% 15.9M 2s
  1450K .......... .......... .......... .......... .......... 28% 16.0M 2s
  1500K .......... .......... .......... .......... .......... 29% 16.6M 2s
  1550K .......... .......... .......... .......... .......... 30% 3.40M 2s
  1600K .......... .......... .......... .......... .......... 31% 15.3M 2s
  1650K .......... .......... .......... .......... .......... 32% 15.8M 2s
  1700K .......... .......... .......... .......... .......... 33% 15.0M 2s
  1750K .......... .......... .......... .......... .......... 34% 15.7M 1s
  1800K .......... .......... .......... .......... .......... 35% 3.69M 1s
  1850K .......... .......... .......... .......... .......... 36% 14.6M 1s
  1900K .......... .......... .......... .......... .......... 37% 14.9M 1s
  1950K .......... .......... .......... .......... .......... 38% 11.6M 1s
  2000K .......... .......... .......... .......... .......... 39% 16.0M 1s
  2050K .......... .......... .......... .......... .......... 40% 3.74M 1s
  2100K .......... .......... .......... .......... .......... 41% 15.2M 1s
  2150K .......... .......... .......... .......... .......... 42% 14.8M 1s
  2200K .......... .......... .......... .......... .......... 42% 15.3M 1s
  2250K .......... .......... .......... .......... .......... 43% 13.4M 1s
  2300K .......... .......... .......... .......... .......... 44% 2.12M 1s
  2350K .......... .......... .......... .......... .......... 45% 11.7M 1s
  2400K .......... .......... .......... .......... .......... 46% 15.3M 1s
  2450K .......... .......... .......... .......... .......... 47% 15.5M 1s
  2500K .......... .......... .......... .......... .......... 48% 13.3M 1s
  2550K .......... .......... .......... .......... .......... 49% 3.64M 1s
  2600K .......... .......... .......... .......... .......... 50% 15.3M 1s
  2650K .......... .......... .......... .......... .......... 51% 15.4M 1s
  2700K .......... .......... .......... .......... .......... 52% 16.3M 1s
  2750K .......... .......... .......... .......... .......... 53% 11.6M 1s
  2800K .......... .......... .......... .......... .......... 54% 3.64M 1s
  2850K .......... .......... .......... .......... .......... 55% 15.7M 1s
  2900K .......... .......... .......... .......... .......... 56% 15.6M 1s
  2950K .......... .......... .......... .......... .......... 57% 15.3M 1s
  3000K .......... .......... .......... .......... .......... 58% 14.8M 1s
  3050K .......... .......... .......... .......... .......... 59% 12.1M 1s
  3100K .......... .......... .......... .......... .......... 60% 3.68M 1s
  3150K .......... .......... .......... .......... .......... 61% 11.3M 1s
  3200K .......... .......... .......... .......... .......... 62% 12.2M 1s
  3250K .......... .......... .......... .......... .......... 63% 14.1M 1s
  3300K .......... .......... .......... .......... .......... 64% 14.3M 1s
  3350K .......... .......... .......... .......... .......... 64% 4.02M 1s
  3400K .......... .......... .......... .......... .......... 65% 14.6M 1s
  3450K .......... .......... .......... .......... .......... 66% 15.7M 0s
  3500K .......... .......... .......... .......... .......... 67% 15.5M 0s
  3550K .......... .......... .......... .......... .......... 68% 11.7M 0s
  3600K .......... .......... .......... .......... .......... 69% 3.67M 0s
  3650K .......... .......... .......... .......... .......... 70% 15.9M 0s
  3700K .......... .......... .......... .......... .......... 71% 13.5M 0s
  3750K .......... .......... .......... .......... .......... 72% 14.7M 0s
  3800K .......... .......... .......... .......... .......... 73% 15.1M 0s
  3850K .......... .......... .......... .......... .......... 74% 3.80M 0s
  3900K .......... .......... .......... .......... .......... 75% 15.5M 0s
  3950K .......... .......... .......... .......... .......... 76% 11.6M 0s
  4000K .......... .......... .......... .......... .......... 77% 13.3M 0s
  4050K .......... .......... .......... .......... .......... 78% 14.4M 0s
  4100K .......... .......... .......... .......... .......... 79% 4.09M 0s
  4150K .......... .......... .......... .......... .......... 80% 15.5M 0s
  4200K .......... .......... .......... .......... .......... 81% 15.6M 0s
  4250K .......... .......... .......... .......... .......... 82% 15.4M 0s
  4300K .......... .......... .......... .......... .......... 83% 15.4M 0s
  4350K .......... .......... .......... .......... .......... 84% 3.41M 0s
  4400K .......... .......... .......... .......... .......... 85% 14.0M 0s
  4450K .......... .......... .......... .......... .......... 85% 15.1M 0s
  4500K .......... .......... .......... .......... .......... 86% 14.6M 0s
  4550K .......... .......... .......... .......... .......... 87% 14.9M 0s
  4600K .......... .......... .......... .......... .......... 88% 2.97M 0s
  4650K .......... .......... .......... .......... .......... 89% 15.7M 0s
  4700K .......... .......... .......... .......... .......... 90% 16.0M 0s
  4750K .......... .......... .......... .......... .......... 91% 11.2M 0s
  4800K .......... .......... .......... .......... .......... 92% 16.3M 0s
  4850K .......... .......... .......... .......... .......... 93% 3.69M 0s
  4900K .......... .......... .......... .......... .......... 94% 16.0M 0s
  4950K .......... .......... .......... .......... .......... 95% 14.6M 0s
  5000K .......... .......... .......... .......... .......... 96% 15.2M 0s
  5050K .......... .......... .......... .......... .......... 97% 1.12M 0s
  5100K .......... .......... .......... .......... .......... 98% 11.6M 0s
  5150K .......... .......... .......... .......... .......... 99%  423K 0s
  5200K .......... .......... .......... ..                   100% 12.9M=1.3s

2024-07-01 23:25:33 (3.91 MB/s) - written to stdout [5358294/5358294]

*** 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:
=================================================================
    0xce734 - /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.206/mono/mini/mono : 
    0xcea98 - /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.206/mono/mini/mono : 
    0x8d20c - /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.206/mono/mini/mono : 
    0xcde90 - /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.206/mono/mini/mono : 
    0xb4b294 - /usr/lib/libSystem.B.dylib : _sigtramp

=================================================================
    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 (0xb4cd48):0xb4cd38  48 00 00 04 38 00 00 25 44 00 00 02 48 00 00 08  H...8..%D...H...
0xb4cd48  48 00 00 24 7c 08 02 a6 42 9f 00 05 7d 88 02 a6  H..$|...B...}...
0xb4cd58  7c 08 03 a6 3d 8c 00 15 81 8c bd 4c 7d 89 03 a6  |...=......L}...
0xb4cd68  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
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.206/runtime'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_mono/mono/work/mono-6.12.0.206'
make: *** [all] Error 2
 
  • Like
Reactions: Yumiko Noua
@ChrisCharman @PowermacSuperuser @doctor_dog @saxfun Could someone verify the build of Boost 1.87 from this commit? https://github.com/macos-powerpc/powerpc-ports/commit/dbcaaf046f38b15925ca8fedeec563e731fb029f
(I also attach the port source for convenience.)

Specifically, it updates a patch to the version proposed by the upstream in https://github.com/boostorg/process/pull/465

I cannot test this myself at the moment, being away from my hardware, but it is desirable to verify it works before this Wednesday (i.e., ASAP).

It is not required to run the build on 10.6.x, though myself I did not try it on 10.5.8; the earlier version built fine on 10.6.8 with gcc14 etc. from my PPCPorts fork. It probably should work within standard MacPorts too, as long as you replace port folder or use an overlay (i.e. just make sure that this version is used and not the mainstream port, which is broken).
 

Attachments

  • boost187.zip
    20.2 KB · Views: 7
Last edited:
I've been passively pondering how to get the compile times for my port tree down to something like hours/days instead of days/weeks without getting a G5. Now that VMWare Fusion is free for personal use (in case you didn't know, go get it), I loaded up 10.5 server in a VM on my most powerful Intel machine, installed Macports, set the build arch to ppc, and away I went. It downloaded the big ticket items from my repo that I asked as expected and started humming away at upgrades.

I chose a simplistic program , nano, as my test application to see if the binary compiled on the Intel VM would run on my Powerbook G4. Lo and behold: it does!

Before I get too carried way here, I suspect that I'm missing something. If it was this easy to cross-compile for Leopard on an Intel machine that would have been suggested over and over again by now. Am I missing something "big" here? Will it start to break building more complicated programs?
 
  • Like
Reactions: Romain_H
I've been passively pondering how to get the compile times for my port tree down to something like hours/days instead of days/weeks without getting a G5. Now that VMWare Fusion is free for personal use (in case you didn't know, go get it), I loaded up 10.5 server in a VM on my most powerful Intel machine, installed Macports, set the build arch to ppc, and away I went. It downloaded the big ticket items from my repo that I asked as expected and started humming away at upgrades.

I chose a simplistic program , nano, as my test application to see if the binary compiled on the Intel VM would run on my Powerbook G4. Lo and behold: it does!

Before I get too carried way here, I suspect that I'm missing something. If it was this easy to cross-compile for Leopard on an Intel machine that would have been suggested over and over again by now. Am I missing something "big" here? Will it start to break building more complicated programs?

Off top of my head I do not know a reason why that should not work, as long as it works in Rosetta (within a given major version). I have initially built gcc11 in Rosetta and used it on 10a190 ppc, until gcc10-bootstrap port was introduced. I still build a couple of ports which use Xcode in Rosetta for using on 10.6.8 ppc, that works as expected.

You may run into cases when this won’t work, but it gonna fail already in Rosetta. So far, AFAIK, no one was able to get Ruby 3.x working in Rosetta, and the same goes for SBCL, Java and some other languages. Common stuff like C, C++, Perl, Python and Fortran should work normally.

P. S. You may also need to add a few fixes here and there, since a) some ports just do not have a needed fix for Rosetta build, and occasionally such fixes are needed (for example, autotools set wrong triple, which may break building, etc.), and b) fixes that I added earlier often assumed that MacPorts itself is built for ppc (in Rosetta), but after 2.7.x MacPorts does not work if built that way. In the latter case `platform darwin 10 powerpc` condition should be replaced in a portfile with `configure.build_arch`-based one.
 
  • Like
Reactions: doctor_dog
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.