Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.
Since I have a clone of my 10A190 system now, I will probably try in the next round to replace Xcode and Unix tools with those from 10A261 and see if that break down everything or not.

10A222 compilers are fully functional, you may consider adding that to Wikipost (which has rather misleading info that only Xcode from 10A96 works – that is verily incorrect, I never installed anything from 10A96 at all, and I assure that my Xcode installation works).

P. S. A side note re compilation: if something fails to build on 10.6 PPC by default methods, consider building against 10.5 SDK and deployment target. That will be a better solution – I think – than building on 10.5.8 and sticking it into 10.6. In Macports that can be like that: https://trac.macports.org/ticket/54332#comment:1 (amend the file temporarily to build specific port).
This turned to be a very simply solution for 2 ports I was struggling with for days.

This really belongs under its own supplemental thread and with its own WikiPost. I am very much encouraging you to get that project started.

From there, you should be able to start a fresh wikipost describing, step by step, everything a new user — new to setting up SL-PPC for the first time — would need to do, from scratch, to set up a working build environment apropos the one you’re now running. This environment can and ought to include all the things needed to get Macports functioning in 10A190 and/or 10A96.

Once that WikiPost comes into being, I’ll be sure to update the incorrect info on this WikiPost and have it linked to said new WikiPost.

Seed notes for 10A190 (or do we have these already here?)



We have seed notes for every beta release made available outside of the internal Apple folks, save for Build 10A96. A link to those seed notes is at the very top of Table 1 in this WikiPost.
 
AHCI — a predecessor to NVMe — is Intel-only, insofar as Macs go.

The introduction of AHCI support in OS X was intended for Intel Macs to take advantage of — which is why, despite the AppleAHCIPort and IOAHCIFamily kexts in Snow Leopard Builds 10A96, 10A190, and onward, only an Intel Mac is able to load them (as both are written as Intel only binaries). That support needs to be present at the Open Firmware or EFI level for the Mac to be able to boot from it, but Open Firmware was sort of left in the dust here.
Leopard has ppc code for IOAHCIFamily, IOAHCIBlockStorage, IOAHCISerialATAPI, and AppleAHCIPort.
I understand this thread is about Snow Leopard though and there's no source code for the AHCI kexts.
 
Leopard has ppc code for IOAHCIFamily, IOAHCIBlockStorage, IOAHCISerialATAPI, and AppleAHCIPort.
I understand this thread is about Snow Leopard though and there's no source code for the AHCI kexts.

They — specifically, IOAHCIFamily and AppleAHCIPort — may be kexts reserved for use on the A1117s only. They are not loaded by Leopard on pre-PCIe G5s or G4s. (IOAHCISerialATAPI and IOAHCIBlockStorage are subset kexts within IOAHCIFamily.)
 
Last edited:
This really belongs under its own supplemental thread and with its own WikiPost. I am very much encouraging you to get that project started.

We have seed notes for every beta release made available outside of the internal Apple folks, save for Build 10A96. A link to those seed notes is at the very top of Table 1 in this WikiPost.

Thanks for pointing to seed notes! I missed them somehow.

For compilers, my major point was about Xcode compilers, which have nothing to do as such with Macports. (I use them with Macports, so refer to this as testing environment. This does not mean one cannot use them without Macports. They are totally self-sufficient.)

P. S. I don’t object in principle regarding a dedicated post for development, I just don’t see enough content for it to justify a separate post. But of course, if no one finds such info useful here, I can easily abstain from providing it LOL
 
  • Like
Reactions: ChrisCharman
They — specifically, IOAHCIFamily and AppleAHCIPort — may be kexts reserved for use on the A1177s only. They are not loaded by Leopard on pre-PCIe G5s or G4s. (IOAHCISerialATAPI and IOAHCIBlockStorage are subset kexts within IOAHCIFamily.)
But they are loaded for PCIe G5s?
AppleAHCIPort has a PCI Class Match with all AHCI devices 01:06:01 but the kext may do other checks.
https://pci-ids.ucw.cz/read/PD/01/06/01
 
P. S. I don’t object in principle regarding a dedicated post for development, I just don’t see enough content for it to justify a separate post. But of course, if no one finds such info useful here, I can easily abstain from providing it LOL

On the contrary — the information is quite useful for anyone who’s embarking on building software from source whilst within the SL-PPC environment!

Also, nearly every WikiPost around here begins small and humble, but over time and collective effort they get bigger as more knowledge is aggregated and shared. I do think working on building software — whether via Xcode, Apple GCC, Macports, whatever — within the SL-PPC realm deserves the room and focus this topic’s WikiPost can’t really take on earnestly.

This is especially so when factoring how the latest character-extension of this WikiPost (now the longest across all of MR forums) is also the moderators’ last before we must begin breaking things up into multiple places.
 
But they are loaded for PCIe G5s?
AppleAHCIPort has a PCI Class Match with all AHCI devices 01:06:01 but the kext may do other checks.
https://pci-ids.ucw.cz/read/PD/01/06/01

I don’t know, because I lack a PCIe G5 to test this hypothesis.

That said, I’m sort of surprised AHCI had PowerPC support in Leopard, given how AHCI was an Intel standard from the outset for specifying the operation of onboard SATA host controllers on (presumably) Intel logic boards.
 
  • Like
Reactions: Amethyst1
I don’t know, because I lack a PCIe G5 to test this hypothesis.

That said, I’m sort of surprised AHCI had PowerPC support in Leopard, given how AHCI was an Intel standard from the outset for specifying the operation of onboard SATA host controllers on (presumably) Intel logic boards.
It is just a PCI device so there's no reason why a driver couldn't be created for any CPU. I mean, ARM devices like the the Raspberry Pi or M1 Macs have AHCI drivers. And NVMe drivers. And XHCI drivers. So you can make the same drivers for PowerPC. You could probably even add Thunderbolt and USB4 drivers.
 
That said, I’m sort of surprised AHCI had PowerPC support in Leopard,
Maybe the kexts were “accidentally” compiled for both PowerPC and Intel? ;)
That being said, AHCI is open for anyone to implement AFAIK. AMD and NVIDIA chipsets (not that those are still around…) also use it.
 
Last edited:
  • Like
Reactions: ChrisCharman
For torrents, Ctorrent builds and works with no issues:

Code:
36-111:~ svacchanda$ port -v installed ctorrent
The following ports are currently installed:
  ctorrent @3.3.2_4 (active) requested_variants='' platform='darwin 10' archs='ppc' date='2022-01-02T04:47:03+0800'

Screenshot 2022-01-02 04-53-23.png
 
  • Like
Reactions: fra9000
Xcode from 10A261 has another component broken for ppc, as. If you install cctools from Xcode 10A261, you need to replace three components:

gnumake
ld
as

The last one in two locations:

/usr/bin
/usr/libexec/gcc/darwin/ppc/as

And perhaps this one too:

/usr/libexec/gcc/darwin/ppc64/as

After that gcc works:

Code:
36-195% gcc -v
Using built-in specs.
Target: powerpc-apple-darwin10
Configured with: /var/tmp/gcc/gcc-5634~6/src/configure --disable-checking --enable-werror --prefix=/usr --mandir=/usr/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin10 --with-gxx-include-dir=/usr/include/c++/4.2.1 --program-prefix= --host=powerpc-apple-darwin10 --target=powerpc-apple-darwin10
Thread model: posix
gcc version 4.2.1 (Apple Inc. build 5634)
36-195% gcc /Users/svacchanda/HelloWorld.c -o hello
36-195% /Users/svacchanda/hello
hello, world
 
If anyone gonna try building on 10.6.8 Intel for 10.6 PPC, what is needed is the following:

1. Restore PPC support: https://stackoverflow.com/questions...well-as-full-10-4-10-5-sdk-support-to-xcode-4 (you may need to slightly adapt this)
Alternative option: https://github.com/devernay/xcodelegacy

2. Make sure to use Apple gcc-4.2 and not the default llvm-4.2 to build for ppc.

This compiler works for ppc:

Code:
svacchanda$ /usr/bin/gcc-4.2 -v
Using built-in specs.
Target: i686-apple-darwin10
Configured with: /var/tmp/gcc/gcc-5666.3~6/src/configure --disable-checking --enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin10 --program-prefix=i686-apple-darwin10- --host=x86_64-apple-darwin10 --target=i686-apple-darwin10 --with-gxx-include-dir=/include/c++/4.2.1
Thread model: posix
gcc version 4.2.1 (Apple Inc. build 5666) (dot 3)

This one does not:

Code:
svacchanda$ gcc -v
Using built-in specs.
Target: i686-apple-darwin10
Configured with: /private/var/tmp/llvmgcc42/llvmgcc42-2336.1~3/src/configure --disable-checking --enable-werror --prefix=/Developer/usr/llvm-gcc-4.2 --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-prefix=llvm- --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin10 --enable-llvm=/private/var/tmp/llvmgcc42/llvmgcc42-2336.1~3/dst-llvmCore/Developer/usr/local --program-prefix=i686-apple-darwin10- --host=x86_64-apple-darwin10 --target=i686-apple-darwin10 --with-gxx-include-dir=/usr/include/c++/4.2.1
Thread model: posix
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)

After these two steps I was able to build a port for x86_64 + ppc:

Code:
svacchanda$ port -v installed libffi
The following ports are currently installed:
  libffi @3.4.2_2+universal (active) requested_variants='+universal' platform='darwin 10' archs='ppc x86_64' date='2022-01-13T11:49:20+0800'

Then you can set a local repo with ports on 10.6.8 and install from there to 10.6 PPC (not tested personally yet, but supposed to work).
This is the manual: https://trac.macports.org/wiki/howto/ShareArchives2
 
If anyone gonna try building on 10.6.8 Intel for 10.6 PPC, what is needed is the following:

Quick update: yes, many ports do build as universal for x86_64 + ppc (that is, in a way so that they can run on 10.6 Intel and 10.6 PPC both).

There is a problem with pythons, which fail for exotic arch combinations (as a matter of fact, they also fail for ppc+ppc64 on 10.5.8 PPC). It is probably solvable, and I will try to fix it in a short-while.

Anyone wishing to contribute, here are tickets: https://trac.macports.org/ticket/64449
 
Quick update: yes, many ports do build as universal for x86_64 + ppc (that is, in a way so that they can run on 10.6 Intel and 10.6 PPC both).

There is a problem with pythons, which fail for exotic arch combinations (as a matter of fact, they also fail for ppc+ppc64 on 10.5.8 PPC). It is probably solvable, and I will try to fix it in a short-while.

Anyone wishing to contribute, here are tickets: https://trac.macports.org/ticket/64449

I am looking forward to the day when you’re able to create a step-by-step, from scratch, WikiPost tutorial on all the steps which one needs to follow to create, setup, and build this environment for SL-PPC for the first time. That could be an invaluable resource for anyone who stumbles upon this project and just wants to get things going quickly.
 
I am looking forward to the day when you’re able to create a step-by-step, from scratch, WikiPost tutorial on all the steps which one needs to follow to create, setup, and build this environment for SL-PPC for the first time. That could be an invaluable resource for anyone who stumbles upon this project and just wants to get things going quickly.

I can make it, provided we got a number of people interested to actually do that different from zero LOL

I will have to ask @kencu (since he did the initial setup and many fixes) and review my fixes for port files before making them public.

Probably it makes sense to wait a bit though: right now there are unsolved issues with universal binaries and ppc64 (the latter doesn’t affect 10.6 PPC, as we have it, but has a major impact on 10.5.8).

I have also not made gcc11 build natively on 10.6 PPC yet.

To sum up the current state of things:

1. Macports on 10.6 PPC works without major problems and most ports build for ppc (many web-related fail, however). Port files need fixes, many of them do, but most of such fixes are trivial.
2. Macports gcc8+ at the moment do not build on 10.6 PPC (or 10.5.8).
3. Clang is broken, for all practical purposes.
4. Despite some claims to the contrary, 10.6 PPC has no support of ppc64. Building for ppc64 is possible, but running ppc64 binaries is not.

I would love to restore ppc64 support into 10.6, however moving dylibs from 10.5.8 makes OS unbootable.

5. mpstats is working, which is important – if we want developers to keep supporting antique OS and exotic configurations, we gotta show they are used. Making it work requires two installations of Macports with custom config. (This is actually easy, just gonna require some extra compilation time if you use G4.)

6. Building on 10.5.8 for ppc+ppc64 is partly working, but major issues are unresolved.
Same true for building on 10.6.8 for x86_64+ppc.
No easy tutorial feasible for these right now. It is not too hard to make things going, but some things are broken.

7. I have not yet finished testing later Xcode tools from DPs, but I can assure tools from 10A222 work normally (Xcode from 10A190 still needed for ld and gnumake).

P. S. I wonder where a statement in Wiki that “no other Xcode” will work besides the one from 10A96 came from. I never installed that one at all. Xcode and tools from 10A190 work as they are, from 10A222 work after minor fixes, it seems that all versions through 10A286 likewise work (if not later).
On the other hand, probably Xcode 3.1.4 will also work (excluding System tools). It installed and starts.
 
I can make it, provided we got a number of people interested to actually do that different from zero LOL

I, for one, would be interested. Given how other lurkers are reading your posts and giving them a thumbs-up, I imagine that number is even higher.

By documenting what you’ve worked on throughout, and providing step-by-step instructions on how you made it work, will come in very useful for folks now and folks later who’ll find the project. That’s why doing WikiPosts is helpful.


Probably it makes sense to wait a bit though: right now there are unsolved issues with universal binaries and ppc64 (the latter doesn’t affect 10.6 PPC, as we have it, but has a major impact on 10.5.8).

Get to it as you can. WikiPosts are a constant work in progress, and by posting an initial draft, it might encourage other folks to get their hands dirty and help with editing as they try it out for themselves.


I have also not made gcc11 build natively on 10.6 PPC yet.

No worries!

P. S. I wonder where a statement in Wiki that “no other Xcode” will work besides the one from 10A96 came from. I never installed that one at all. Xcode and tools from 10A190 work as they are, from 10A222 work after minor fixes, it seems that all versions through 10A286 likewise work (if not later).

Here’s the thing about that:

A lot on your end (and also @ChrisCharman ’s end) has happened since that was first posted, and your findings and continued work in that area is also the impetus for encouraging you to create a new WikiPost — one concentrating on Xcode and macports and the numerous tweaks you’ve made to make things work well on Build 10A190.

The thing is, I have been taking responsibility for maintaining much of this thread’s WikiPost. I want to add an update to that now-outdated portion regarding Xcode, but what will help me is to be able to review the steps which one must follow to know exactly how to update that portion.

For that to happen, I’d like to see a step-by-step guide (found in a new WikiPost, for example) to enable anyone here to repeat the steps on their own and verify its functionality in their Build 10A96 or Build 10A190 setup, using Xcode components from 10A190, 10A222, or other builds.

For now, because no one has posted their own reply of “here’s what I did from a ‘stock’ install of 10A190/10A96 to get x-version of Xcode 3.2 up and running,” there isn’t a particular reply I can point to with a link via the WikiPost. The idea behind the way I’ve maintained this thread’s WikiPost is I want someone who’s new to the project to be able to find exactly what they need, quickly — and to get set up, also quickly — by using the WikiPost alone as their springboard.


On the other hand, probably Xcode 3.1.4 will also work (excluding System tools). It installed and starts.

This is helpful to know. I haven’t tried using Xcode 3.1.4 with 10.6 yet.
 
Quick update: yes, many ports do build as universal for x86_64 + ppc (that is, in a way so that they can run on 10.6 Intel and 10.6 PPC both).

There is a problem with pythons, which fail for exotic arch combinations (as a matter of fact, they also fail for ppc+ppc64 on 10.5.8 PPC). It is probably solvable, and I will try to fix it in a short-while.

Since ppc64 is not supported on 10.6 (both 10A190 and 10.6.8), I thought there is little to no utility to building universal: instead you can build for ppc32 on all three systems and for ppc64 on 10.5.8 (as this is this only one supporting it).

Good news: you can kinda replicate building for ppc on 10.6.8 natively (via Rosetta). You can build Macports from source as ppc and configure it pretty much identically as on 10.6 PPC. You can build outside Macports for powerpc-apple-darwin10. gcc10 builds this way, and probably gcc11 will as well.
Potentially this may be useful to build something that does not build on 10.6 PPC and then install it into it. (I have no use case so far, see below.)

Bad news:
1. It is quite slow (because of Rosetta). It took me 300 minutes to build gcc10 for ppc on 10.6.8 (MacMini 2012 Server 2.3 GHz, 4 cores, 16 GB RAM), while the same took around 2–2.5 hrs on 10.5.8 (G5 Quad, 16 GB RAM). It will be horribly slow on almost any Intel Mac that natively supports 10.6.8 (mine does not, I use a patched core for Ivy Bridge).

2. Expectation: It is a standard system and single architecture, so everything gonna work like a breeze with no pain and looking for solutions for days.
Reality: some very basic ports fail to build as they are and require fixes, no idea yet how many more will. (Though fixes might be similar or identical in many cases.)

Two more notes:
– Make sure to have identical directory structure on PowerPC machine with 10.6 and Intel machine with 10.6.8, including identical Macports prefix, if you plan to install some software build on another machine. (Probably obvious, but just in case, it will save time to start from this.)
– Xcode 4.2 can be made to work for ppc, however its installation screws things up in a number of ways, and fixing that is bothersome and annoying. There might be some benefit to having it, but it is much easier to stay with 3.2.6 or even 3.2. In fact I have installed on 10.6.8 the same Xcode and Unix tools which I use on 10.6 PPC – to make systems as close as possible. Xcode 3.2 tools from 10A190 + 10A222 work on 10.6.8.
 
1. It is quite slow (because of Rosetta). It took me 300 minutes to build gcc10 for ppc on 10.6.8 (MacMini 2012 Server 2.3 GHz, 4 cores, 16 GB RAM),
If you’re running 10.6.8 natively: did you verify the CPU is running at full speed? In 10.6.8 on a 2011 Mac mini, for instance, the CPU is throttled heavily unless the plists for fixing SpeedStep are added.
 
Last edited:
If you’re running 10.6.8 natively: did you verify the CPU is running at full speed? In 10.6.8 on a 2011 Mac mini, for instance, the CPU is throttled heavily unless the plists for fixing SpeedStep are added.

Honestly no idea. How to check that? And which plist to amend?
 
Honestly no idea. How to check that?
I'd just run Geekbench and check if the results are in the expected ballpark.

And which plist to amend?
From a Mountain Lion (or later) install, copy
Macmini6_1.plist
Macmini6_2.plist
from
/System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources
to the same location on Snow Leopard.


EDIT: There are no plists for any Macs newer than 2011 in that location. So disregard the above!

 
Last edited:
From a Mountain Lion (or later) install, copy
Macmini6_1.plist
Macmini6_2.plist
from
/System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources
to the same location on Snow Leopard.

I only got Catalina installed aside of Snow Leopard. Would it work?

If not, I will try to extract those files from Mountain Lion distro. (Installing OS just for this purpose is too much of a pain.)
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.