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.

barracuda156

macrumors 68020
Sep 3, 2021
2,295
1,514
I've built 210 projects from 10.6.8 AOSP and there are 116 that I was unable to compile properly, I'll attach a list of them and if any of you have successfully built one please let me know.

I'll test what I have in the next couple days and I hope it'll fix some bugs.

Unsure if anyone would want me to upload the projects I have properly compiled for PPC somewhere but I can do it.

Yeah, please upload that somewhere, it will be very helpful.

P. S. On a general note, to everyone: I am not sure there is an easy way to record fixes made directly via Xcode IDE, but it will be good to know at least if something needed patches to the source code.
Ideally, of course, it is desirable that patches are available via GitHub commits, so that they are not lost and code is easier to debug.
 
  • Like
Reactions: ChrisCharman

barracuda156

macrumors 68020
Sep 3, 2021
2,295
1,514
I'm using Xcode 4.2 which is probably not a very good idea or some projects building for x86_64 because I think it's building for the machine I'm running so most of them are probably relatively easy to build in a decent building environment.

Xcode 4.2 certainly has issues with ppc builds, and also sources should assume 3.2.x, so there may be compatibility issues as well.
It should be easy to make a separate installation with 3.2.6 just for the sake of cross-compiling for ppc.

Wrong arch may be a result of wrong specification in the Xcode project file (i.e. a bug in source code): sometimes it sets valid archs to i386 x86_64, while it must include ppc too (or rather just remove that line, it is unneeded anyway). With autotools/makefiles builds wrong build arch may happen when the build does not pass arch flags to the compiler and/or the linker. In which case assumed arch will be the native one, and that obviously fails when cross-compiling.
 
  • Like
Reactions: ChrisCharman

educovas

macrumors regular
Jul 30, 2019
169
526
Curitiba, Brasil
Just tested the updated binaries I've built from AOSP and unfortunately only a single bug has been fixed. @barracuda156 Pacifist now seems to be working fine.

The good part is that now I could restore 4 stock 10.6.8 frameworks (DirectoryService and Security).

Still the same Finder unmount disk bug (killall Finder still helps) and same DNS problem.

Yeah I’d recommend using Xcode 3.2.X for PowerPC support.

If there’s anything in the list hidden behind the spoiler in my previous post that you want me to upload here let me know. I don’t have time or access to my other systems at the moment and won’t for at least another week.
Yeah, I'll use Xcode 3.2.6 today.

these are the projects in that list that I don't have.

Bash-80
gcc_select-70
gcc-gcc-5646
graphviz-1009
ksh-16.1
nasm-13
net_snmp-127
ntp-45.1
SystemStubs-6
Twisted-9
file_cmds-202.2
gdb-1344
ruby_libxml-8

Yeah, please upload that somewhere, it will be very helpful.

P. S. On a general note, to everyone: I am not sure there is an easy way to record fixes made directly via Xcode IDE, but it will be good to know at least if something needed patches to the source code.
Ideally, of course, it is desirable that patches are available via GitHub commits, so that they are not lost and code is easier to debug.
I'll upload once I'm done with compiling. unfortunately I can't remember much what I had to patch but it was mostly dealing with headers and adding PowerPC to the valid archs. What I remember that I had to delete some AppStore strings from some security projects due to a private header I couldn't find and DirectoreService that actually required some small changes in the code.
 

barracuda156

macrumors 68020
Sep 3, 2021
2,295
1,514
Just tested the updated binaries I've built from AOSP and unfortunately only a single bug has been fixed. @barracuda156 Pacifist now seems to be working fine.

The good part is that now I could restore 4 stock 10.6.8 frameworks (DirectoryService and Security).

Still the same Finder unmount disk bug (killall Finder still helps) and same DNS problem.


Yeah, I'll use Xcode 3.2.6 today.

these are the projects in that list that I don't have.

Bash-80
gcc_select-70
gcc-gcc-5646
graphviz-1009
ksh-16.1
nasm-13
net_snmp-127
ntp-45.1
SystemStubs-6
Twisted-9
file_cmds-202.2
gdb-1344
ruby_libxml-8

Do you mean not being able to build or not having the source code? The latter is very likely available here: https://opensource.apple.com/releases (notice that there is Developer tools section which has Unix tools sources).
Most of listed stuff won’t help us with UDP/DNS though.

P. S. It is nice to have Pacifist working, that gonna make some tasks easier.

I'll upload once I'm done with compiling. unfortunately I can't remember much what I had to patch but it was mostly dealing with headers and adding PowerPC to the valid archs. What I remember that I had to delete some AppStore strings from some security projects due to a private header I couldn't find and DirectoreService that actually required some small changes in the code.

Documenting something as trivial as setting a valid arch will be a waste of time, perhaps. AppStore is irrelevant, since it is of zero utility even if it works, so this is of no concern either.
Changes to the code would be helpful to know, but in fact there is no need for you (or anyone working on this) to waste time documenting those, as long as modified source is preserved. Then it can be uploaded to GitHub and compared against release or diffed locally, etc. I.e. technically just not deleting source which is used for the build is perfectly enough to derive patches from it whenever needed.
 
Last edited:

educovas

macrumors regular
Jul 30, 2019
169
526
Curitiba, Brasil
Do you mean not being able to build or not having the source code? The latter is very likely available here: https://opensource.apple.com/releases (notice that there is Developer tools section which has Unix tools sources).
Most of listed stuff won’t help us with UDP/DNS though.

P. S. It is nice to have Pacific working, that gonna make some tasks easier.
I was unable to build them so far, source code is available.

Documenting something as trivial as setting a valid arch will be a waste of time, perhaps. AppStore is irrelevant, since it is of zero utility even if it works, so this is of no concern either.
Changes to the code would be helpful to know, but in fact there is no need for you (or anyone working on this) to waste time documenting those, as long as modified source is preserved. Then it can be uploaded to GitHub and compared against release or diffed locally, etc. I.e. technically just not deleting source which is used for the build is perfectly enough to derive patches from it whenever needed.
I've preserved all of the source code from each project I've built and will upload after trying to build what I was unable to build again.
 

ChrisCharman

macrumors 6502a
May 10, 2020
512
666
Bournemouth, UK
Just tested the updated binaries I've built from AOSP and unfortunately only a single bug has been fixed. @barracuda156 Pacifist now seems to be working fine.

The good part is that now I could restore 4 stock 10.6.8 frameworks (DirectoryService and Security).

Still the same Finder unmount disk bug (killall Finder still helps) and same DNS problem.


Yeah, I'll use Xcode 3.2.6 today.

these are the projects in that list that I don't have.

Bash-80
gcc_select-70
gcc-gcc-5646
graphviz-1009
ksh-16.1
nasm-13
net_snmp-127
ntp-45.1
SystemStubs-6
Twisted-9
file_cmds-202.2
gdb-1344
ruby_libxml-8


I'll upload once I'm done with compiling. unfortunately I can't remember much what I had to patch but it was mostly dealing with headers and adding PowerPC to the valid archs. What I remember that I had to delete some AppStore strings from some security projects due to a private header I couldn't find and DirectoreService that actually required some small changes in the code.
@educovas Here is an archive of most of the compiled projects listed above. Ruby_libxml is missing from that archive as nothing useful has been compiled yet, and File_commands and GDB are only partially built but what is built and included there should be usable. Please double check permissions as i'm unsure if they'll survive the zip process. Assume all files are untested please (anybody downloading to test).

File is too large to upload here even after Ultra 7zip compression so is available to download Here
 

educovas

macrumors regular
Jul 30, 2019
169
526
Curitiba, Brasil
BTW this is awesome. Third-party software uses frameworks (both headers and for linking), so the closer we get here to 10.6.8, the more stuff will build correctly.
Unfortunately the Security.framework still didn't work, I'm currently using the one from 10.6.2. SecurityFoundation.framework and SecurityInterface.framework are now 10.6.8.

DirectoryService was from 1.6.0, I knew I could use stock by compiling /usr/sbin/DirectoryService from AOSP.
 

barracuda156

macrumors 68020
Sep 3, 2021
2,295
1,514
Unfortunately the Security.framework still didn't work, I'm currently using the one from 10.6.2. SecurityFoundation.framework and SecurityInterface.framework are now 10.6.8.

DirectoryService was from 1.6.0, I knew I could use stock by compiling /usr/sbin/DirectoryService from AOSP.

I think everything starting from 10.6.0 (release) is already fine. What is likely to cause problems is stuff borrowed from 10.5.8 and, less likely but nevertheless, from 10a190/10a222.
 

ChrisCharman

macrumors 6502a
May 10, 2020
512
666
Bournemouth, UK
Just had an interesting conversation with ChatGPT about the mounting and unmounting and potential cache issues and had this suggested to me:

If replacing the Finder app didn’t solve the issue, that suggests the problem might lie deeper in the system, possibly with the lower-level services responsible for managing mounted volumes and notifications, rather than Finder’s user interface itself.



It could be worth investigating components like diskarbitrationd, which handles volume mounts and unmounts, or notifyd, which manages the signals that trigger Finder updates. There might also be an issue with how Finder is receiving (or not receiving) notifications about ejected volumes. Checking the logs for these daemons in the Console could provide more insight.


Have you considered digging into those system logs to see if any errors or warnings pop up around the time you eject the drives? It could reveal where the communication breakdown is happening.
 

educovas

macrumors regular
Jul 30, 2019
169
526
Curitiba, Brasil
Just had an interesting conversation with ChatGPT about the mounting and unmounting and potential cache issues and had this suggested to me:

If replacing the Finder app didn’t solve the issue, that suggests the problem might lie deeper in the system, possibly with the lower-level services responsible for managing mounted volumes and notifications, rather than Finder’s user interface itself.



It could be worth investigating components like diskarbitrationd, which handles volume mounts and unmounts, or notifyd, which manages the signals that trigger Finder updates. There might also be an issue with how Finder is receiving (or not receiving) notifications about ejected volumes. Checking the logs for these daemons in the Console could provide more insight.


Have you considered digging into those system logs to see if any errors or warnings pop up around the time you eject the drives? It could reveal where the communication breakdown is happening.
Both diskarbitrationd and notifyd have been compiled fro AOSP and the problem still happens so I don't think they are related.

I've looked into this problem for a while but couldn't find anything useful. Something did improve this since mounting now seems reliable and only unmounting that Finder can't see while in 10A190 mounting also wasn't reliable.
 

ChrisCharman

macrumors 6502a
May 10, 2020
512
666
Bournemouth, UK
Both diskarbitrationd and notifyd have been compiled fro AOSP and the problem still happens so I don't think they are related.

I've looked into this problem for a while but couldn't find anything useful. Something did improve this since mounting now seems reliable and only unmounting that Finder can't see while in 10A190 mounting also wasn't reliable.
Yeah we’ve all been trying to figure it out for years and no luck. Did notice the mounting improvement on your 10.6.8 image. ChatGPT thinks it’s likely a caching issue of some kind. We’ll figure it out eventually.
 

Jazzzny

macrumors regular
Mar 23, 2021
122
243
I have compiled a few of the most important projects that are required for a working compiler toolchain, which now means that Xcode 3.2.6 can be used properly (builds and links binaries, binaries work):
Screenshot 24-10-13 9.04.51 PM.png

The following projects are mandatory for a working Xcode:
- ld64
- gcc (stock gcc is incomplete for ppc)
- cctools for the as tool
- gnumake

I have attached the binaries, and they need to be put in the proper locations after installing Xcode 3.2.6.
 

Attachments

  • other tools.zip
    2.2 MB · Views: 10
  • gcc.tar.xz.zip
    4.3 MB · Views: 10

barracuda156

macrumors 68020
Sep 3, 2021
2,295
1,514
I have compiled a few of the most important projects that are required for a working compiler toolchain, which now means that Xcode 3.2.6 can be used properly (builds and links binaries, binaries work):
View attachment 2436966
The following projects are mandatory for a working Xcode:
- ld64
- gcc (stock gcc is incomplete for ppc)
- cctools for the as tool
- gnumake

I have attached the binaries, and they need to be put in the proper locations after installing Xcode 3.2.6.

This is awesome, many thanks!

As I recall, more components will need to be replaced in Unix tools (it was the case already with Xcode from 10a222 and 10a268), but this should be sufficient for most uses.

P. S. gcc as such was fine, AFAIR, but its ld64 lacked ppc slice. Not sure about gcc-as and friends now.
 
  • Like
Reactions: ChrisCharman

Jazzzny

macrumors regular
Mar 23, 2021
122
243
P. S. gcc as such was fine, AFAIR, but its ld64 lacked ppc slice. Not sure about gcc-as and friends now.
It was the cc1* binaries in gcc/libexec that were missing the ppc slice. GCC would first complain about as, then the cc1* binaries, then ld after each other as I was putting them in place.
 
  • Like
Reactions: ChrisCharman

barracuda156

macrumors 68020
Sep 3, 2021
2,295
1,514
It was the cc1* binaries in gcc/libexec that were missing the ppc slice. GCC would first complain about as, then the cc1* binaries, then ld after each other as I was putting them in place.

Got it, thanks. (Wonder what even tried to use cc, normally it should just not be used.)
 
  • Like
Reactions: Jazzzny

educovas

macrumors regular
Jul 30, 2019
169
526
Curitiba, Brasil

Attachments

  • projects to build.txt
    1.5 KB · Views: 13

educovas

macrumors regular
Jul 30, 2019
169
526
Curitiba, Brasil

FBSD_Mac

macrumors newbie
Sep 26, 2019
14
28
I can't see any improvements but I've updated the image with the binaries from the projects I've built.

10.6.8 image: https://mega.nz/file/UYgxTI5a#NCOKwl4TSQF36wHg4-PzK9J0PrUPbN0jZvS7civO9sM
Replaced files: https://mega.nz/file/cAoSlR5S#eZVQkfHjDsMerkR_8XKf_M_tNwJhotetQbtz3KACnvQ

By the way, @barracuda156 what actually fixed the Pacifist problem was the wrong date because my PowerBook doesn't have a battery. It should work if you set the year to 2023, no idea why.
Awesome!

I’ll get your new versions downloaded soon and start comparing behavior at the low level for network packet management to your previous image.
 
  • Like
Reactions: ChrisCharman
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.