Skip to content

Build refactoring, all downloads take place before any build attempts…#76

Draft
clienthax wants to merge 4 commits into
ps3dev:masterfrom
clienthax:build-updates
Draft

Build refactoring, all downloads take place before any build attempts…#76
clienthax wants to merge 4 commits into
ps3dev:masterfrom
clienthax:build-updates

Conversation

@clienthax
Copy link
Copy Markdown

… and are cached where possible.

@zeldin
Copy link
Copy Markdown
Member

zeldin commented Jun 6, 2026

Why not use the develop branch which already has this functionality?

@clienthax
Copy link
Copy Markdown
Author

Why not use the develop branch which already has this functionality?

Develop branch last touched 6 years ago?

@zeldin
Copy link
Copy Markdown
Member

zeldin commented Jun 6, 2026

Develop branch last touched 6 years ago?

Correct, the functionality has been available for 6 years already now. 😺

@TheMrIron2
Copy link
Copy Markdown
Contributor

Hi Marcus! It's cool to see you're still reviewing ps3dev :)
We hadn't noticed the develop branch. If this functionality has been working for years, then is there a reason it was never merged up to now? It definitely seems like an improvement on the current workflow on paper!

BTW - you may have seen a few of us have recently been working with bucanero to bring the toolchain and its surrounding repos up to speed. These changes are part of that. I don't know if you're on Discord but we would welcome your input on it here.
Either way glad to see you weighing in, thanks for the tip!

@zeldin
Copy link
Copy Markdown
Member

zeldin commented Jun 6, 2026

I think the develop branch sort of got forgotten because there was no actual development the last 6 years (only a couple of hotfixes when certain URL:s stopped working). 😄

I could take a look at merging the branch now since there seems to be interest in development again? 🤪

@TheMrIron2
Copy link
Copy Markdown
Contributor

Yes, that would be great! I spent the last couple of days working on the CIs for the toolchain and the config links were proving a bit of a pain point, with Savannah being haphazard! The solution from develop seems a lot better.

Would be super cool if you could try merging it across and we can try and replicate that behaviour with the Savannah links in the ps3toolchain scripts!

@clienthax
Copy link
Copy Markdown
Author

clienthax commented Jun 6, 2026

Develop branch last touched 6 years ago?

Correct, the functionality has been available for 6 years already now. 😺

It looks like the develop branch still attempts to download the config updates instead of using the local automake?
This PR avoids the need of having to download them at all.

@zeldin
Copy link
Copy Markdown
Member

zeldin commented Jun 6, 2026

It looks like the develop branch still attempts to download the config updates instead of using the local automake? This PR avoids the need of having to download them at all.

"The local automake", it it exists at all, could have arbitrarily old config files. config.guess in my local automake (1.18) has timestamp 2024-07-27. The one in the github master branch for automake has 2025-07-10. But the one on savannah is 2026-05-17.

I'm all for using a faster source for getting the config files, but if we're getting outdated versions it defeats the purpose of replacing them in the packages in the first place...

@clienthax
Copy link
Copy Markdown
Author

clienthax commented Jun 6, 2026

It looks like the develop branch still attempts to download the config updates instead of using the local automake? This PR avoids the need of having to download them at all.

"The local automake", it it exists at all, could have arbitrarily old config files. config.guess in my local automake (1.18) has timestamp 2024-07-27. The one in the github master branch for automake has 2025-07-10. But the one on savannah is 2026-05-17.

I'm all for using a faster source for getting the config files, but if we're getting outdated versions it defeats the purpose of replacing them in the packages in the first place...

The purpose of updating the config.guess etc, is to make sure the current system can build said targets right (mainly itself)?
it should be a safe assumption that the system compiling the build will always have the target for itself in that case, esp in the case of the CI runners.

Savannah is so terribly unreliable that I can't even access it from my network and it breaks the build.

@TheMrIron2
Copy link
Copy Markdown
Contributor

I echo the concern about Savannah. What is the danger of an outdated config? If it is included with automake as a dependency but not the latest, then the question is whether this has the potential to cause any problems.

@zeldin
Copy link
Copy Markdown
Member

zeldin commented Jun 6, 2026

Well, since now getting config.sub and config.guess is handled by a dedicated script, any concerns about how to get them are now isolated to that script and orthogonal to merging the develop branch. 😄

The danger of an outdated config is that it will not recognize the build host (which is not necessarily ppc64) and break the build (for no apparent reason since we are cross-compiling anyway). It happened a lot with RISCV when that was new, it's bound to happen again.

With the merge of develop branch (which I haven't pushed yet, currently doing a test build), config.guess and config.sub will be cached so that you only need to get them once (and you can provide your own copies if you like by plopping them into the archives directory).

@clienthax
Copy link
Copy Markdown
Author

clienthax commented Jun 6, 2026

Well, since now getting config.sub and config.guess is handled by a dedicated script, any concerns about how to get them are now isolated to that script and orthogonal to merging the develop branch. 😄

The danger of an outdated config is that it will not recognize the build host (which is not necessarily ppc64) and break the build (for no apparent reason since we are cross-compiling anyway). It happened a lot with RISCV when that was new, it's bound to happen again.

With the merge of develop branch (which I haven't pushed yet, currently doing a test build), config.guess and config.sub will be cached so that you only need to get them once (and you can provide your own copies if you like by plopping them into the archives directory).

Id suggest including them in the repository as a default with a env flag gated updater for it for ci simplicity if you really want to go that route, something like USE_INBUILT_MAKECONFIG_FILES, if defined will not run the savannah update

@clienthax
Copy link
Copy Markdown
Author

clienthax commented Jun 6, 2026

@zeldin Il rebase this after you merge the develop branch in, setting this as draft for now.

@clienthax clienthax marked this pull request as draft June 6, 2026 17:17
@zeldin
Copy link
Copy Markdown
Member

zeldin commented Jun 6, 2026

@clienthax Ok.

I just pushed the merge to master. This also increases the number of available libs by 9. 😄

Note that you will need to pull the ps3toolchain repo and rebuild gcc-newlib-PPU, otherwise one of the new libs will fail to build (there was a bug in the newlib headers).

I also now remembered another thing I was working on 6 years ago but which was never merged to the develop branch: Removing the downloading of live tarballs from github and using gitmodules instead. I should probably rebase that work on the current stuff...

@zeldin
Copy link
Copy Markdown
Member

zeldin commented Jun 6, 2026

I also synced the merge back to the develop branch, so that development can happen there again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants