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: 14
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
Hello,

I tried setting up PPCPorts on Tiger but it looks like the pre-built pkg's require 10.5.

I started a couple of discussions on github:



If I want to build PPCPorts-2.10.5c from source, where would I get it?
 
  • Like
Reactions: GA204
Hello,

I tried setting up PPCPorts on Tiger but it looks like the pre-built pkg's require 10.5.

I started a couple of discussions on github:



If I want to build PPCPorts-2.10.5c from source, where would I get it?

Case 1: you already have MacPorts installed (bare installation is enough, no ports needed to be installed). Then grab my port in sysutils/MacPorts and build it like `sudo port -v pkg MacPorts`. If that works, you find a pkg installer in workpath.

Case 2: you only have Xcode. Clone GH repo of macports-base from macos-powerpc (can be done from another system with working git), cd to it, ./configure, then make && sudo make install.

Notice, I never tried this on Tiger, but it should be easy to solve any issues, if at all some arise.
I can try building it in fact, won’t take long.
 
Ok, I've just built and installed PPCPorts.

I took a guess that this was the repo: https://github.com/barracuda156/macports-base-powerpc

and I guessed that "2.10.3-ppc" is the branch.

I prepared a tarball on a modern machine:

Code:
wget https://github.com/barracuda156/macports-base-powerpc/archive/refs/heads/2.10.3-ppc.tar.gz
mv 2.10.3-ppc.tar.gz macports-base-powerpc.2.10.3-ppc.a7c5472.tar.gz

then transferred it to a powerpc mac, untarred it, then:

Code:
./configure --prefix=/opt/ppcports-2.10.3
make
sudo make install

Looks like that worked:

Code:
$ ls -1 /opt/ppcports-2.10.3/bin/
daemondo
port
port-tclsh
portf
portindex
portmirror

However, "port sync" fails with a 404:

Code:
Error: Fetching http://macos-powerpc.org/MacPorts/ports.tar failed: The requested URL returned error: 404

It looks like maybe the url is http://macos-powerpc.org/PPCPorts/powerpc-ports.tar ?

changing etc/macports/sources.conf to:

Code:
http://macos-powerpc.org/PPCPorts/powerpc-ports.tar [default]
port sync now fails with:

Code:
/usr/bin/tar: unrecognized option `--strip-components=1'
 
Oh, actually the option was just renamed. According to https://www.gnu.org/software/tar/ (scroll down to tar 1.15):

Code:
--strip-path option renamed to --strip-components.

Thank you. If you could fix it for Tiger, would be great (PR is very welcome).

Sorry for an outdated URL, apparently that was changed in some other branch. I will sort it out, so that portfile for MacPorts uses same patches as the master branch of the repo (and will delete unneeded branches).
Myself I build MacPorts from the port and then install pkg – this ensures I have the identical installation with what is distributed (or at least with what is buildable from the port).
 
Last edited:
oh thanks! I'll work on a PR for the tar parameter :)

Great!

P. S. Perhaps the only impactful change for Tiger in PPCPorts base is handling of portgroups (overriding MacPorts’s ones with PPCPorts’ and also your local, if needed). But we do want it, because some ports need those, and otherwise may not build or may not even parse.
What we will need not to forget is to restore Tiger support in the base, once there is the next release. Because, as you may know, MacPorts dropped it.

But dealing with the base is mostly trivial for these purposes. What will require work are ports (perhaps a lot of work, depending on which ports you need). I have probably dropped Tiger-specific fixes in a couple of ports, those will have to be restored, once someone bumps into that. But expect a lot to be broken in MacPorts upstream; last time I tried to build `abaddon` on 10.4 for somebody here, I eventually gave up after fixing several ports on the way, since it was getting too much. Though it was before gcc14 was enabled for Tiger, so things may be a bit easier now.
 
thanks for the tips!

BTW, please verify if current versions (in ppcports, I mean) of cctools and ld64 work. (If they build, they will probably work, but I think nobody tested that.)
They may fail to build with 10.4 Xcode gcc. If so, then they should use apple-gcc42 port as the compiler of choice.

Alternatively, we can revert cctools and ld64 on 10.4 to whatever MacPorts had, that was working and should still work.
 
BTW, please verify if current versions (in ppcports, I mean) of cctools and ld64 work. (If they build, they will probably work, but I think nobody tested that.)
They may fail to build with 10.4 Xcode gcc. If so, then they should use apple-gcc42 port as the compiler of choice.

Alternatively, we can revert cctools and ld64 on 10.4 to whatever MacPorts had, that was working and should still work.
@cellularmitosis If you check out the LD64 thread, I've got a "dependency-free" version of LD64 version 62 working on Tiger, which may help. It builds in GCC 4.0 and works on both PowerPC 32-bit and 64-bit, and compiles GCC 4.0 code perfectly well.

The version of LD64 in specified in the Portfile is 97.17, which I've done the work needed to get it to compile with the stock Tiger GCC Xcode, but it has some issues with linking GCC 4.0 code (which can be fixed if there's time and interest, although LD 64-97.17 may work much better with another version of GCC, such as 4.2+):


I've also got in that same thread a recipe for the latest version of Perl and OpenSSL 1.1.1w, which build in OS X Tiger with the stock GCC 4.0, and would just need the work to be put into a Port file - just be sure to build with "no-asm" to turn off any assembler optimizations.

I've also got TenFourKit to compile in Tiger's stock XCode with the only dependency being a G5 machine and the 64-bit version of LD64-62, but I haven't posted the TenFourKit diff file or instructions, yet (since there's no new features, yet.... but it does make building it easier - and if there's interest, I'm happy to post).

If you have any questions on any of the above, please let me know.
 
Last edited:
To add to the above: if anyone is interested to have 10.4 supported in ppcports and willing to do at least minimal testing (in a sense of environment working as expected), you’re welcome to, please. Any changes that at least look reasonable and do not interfere with 10.5–10.6 setup can be easily merged. Ports system is pretty flexible, and there is no requirement to have identical or even similar toolchain, bootstrap process etc. across systems. If you find that radical changes are needed for cctools/ld64 and portfiles are already too messy, it is fine to have dedicated subports (cctools-tiger, for example) which serve as defaults on 10.4, but still allow switching to other existing options.
The only real requirement is that there should be a reproducible and non-conflicting way to get from Xcode tools to a modern gcc.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.