Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade GCC version (PPU-SPU) #121

Open
wants to merge 136 commits into
base: master
Choose a base branch
from

Conversation

humbertodias
Copy link

@humbertodias humbertodias commented Mar 5, 2024

Features

  • binutils-ppu bumped from 2.22 to 2.42
  • ppu-gcc bumped from 7.20 to 13.2.0
  • spu-gcc bumped from 7.20 to 9.5.0
  • docker bumped from 16.04 to 24.04 - LTS
  • ci/cd working again and building releases
  • ci/cd to docker hub
  • ci/cd badges
  • build on ubuntu/macOS for arm64 enabled
  • test all PSL1GHT samples

Note

We've selected the version 9.5.0 because it's the last GCC release to include support for SPU.
https://www.phoronix.com/news/GCC-10-Drops-Cell-BE-SPU

Result

  1. ar --version
GNU ar (GNU Binutils) 2.42
Copyright (C) 2024 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.
  1. ppu-gcc --version
ppu-gcc (GCC) 13.2.0
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  1. spu-gcc --version
spu-gcc (GCC) 9.5.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  1. Docker
FROM ubuntu:24.04
  1. ci/cd success

image

https://github.com/humbertodias/ps3toolchain/actions/runs/8166663270

  1. ci/cd docker
    image

Note

Don't forget to create a named DockerHub environment on your repository with two secret variables: DOCKERHUB_USERNAME and DOCKERHUB_TOKEN

  1. badges
    image

@humbertodias humbertodias changed the title add gcc-ppu-spu v13.2.0 Update GCC to 13.2.0 (PUU-SPU) Mar 5, 2024
@humbertodias humbertodias changed the title Update GCC to 13.2.0 (PUU-SPU) Update GCC version (PUU-SPU) Mar 5, 2024
@humbertodias humbertodias changed the title Update GCC version (PUU-SPU) Update GCC version (PPU-SPU) Mar 5, 2024
@Fewnity
Copy link

Fewnity commented Mar 5, 2024

Hey cool work, I really want gcc 13 on ps3. But you just forgot to credit Darjan Krijanand and luizfernandonb :/

@humbertodias
Copy link
Author

Hey cool work, I really want gcc 13 on ps3. But you just forgot to credit Darjan Krijanand and luizfernandonb :/

Yeah.. I left his name on patch's file given him the credit

@TheRouletteBoi
Copy link

Ok, I was able to reproduce the issue on my Mac Mini M1. The problem is this script which is using this ancient config.guess without replacing it.
Compare for example this line in a different script that does replace config.guess with an up-to-date version.

Thanks @zeldin for tracking the problem: ps3toolchain > psl1ght > SDL2_PSL1GHT > SDL2_PSL1GHT_Libs I have fixed here and now it's working for arm64 as well.

@TheRouletteBoi please, try again

How to build arm platform image

DOCKER_DEFAULT_PLATFORM=linux/arm64 docker build . -t ps3dev 
DOCKER_DEFAULT_PLATFORM=linux/arm64 docker run -it -v `pwd`:/build -w /build ps3dev

the ps3toolchain now compiles for arm64 👍 thank you @humbertodias

@Fewnity
Copy link

Fewnity commented May 11, 2024

GCC 14.1 is out, maybe can we expect a version bump? 👀

@auser1337
Copy link

I was trying to link against libio_stub.a, but I got some errors with G++ 13.2.0:

/usr/local/ps3dev/ppu/bin/../lib/gcc/powerpc64-ps3-elf/13.2.0/../../../../powerpc64-ps3-elf/bin/ld: /mnt/e/Development/Tools/cell/target/ppu/lib/libio_stub.a(_sys_io_0001_3.o) uses unknown e_flags 0x1000001
/usr/local/ps3dev/ppu/bin/../lib/gcc/powerpc64-ps3-elf/13.2.0/../../../../powerpc64-ps3-elf/bin/ld: failed to merge target specific data of file /mnt/e/Development/Tools/cell/target/ppu/lib/libio_stub.a(_sys_io_0001_3.o)
/usr/local/ps3dev/ppu/bin/../lib/gcc/powerpc64-ps3-elf/13.2.0/../../../../powerpc64-ps3-elf/bin/ld: /mnt/e/Development/Tools/cell/target/ppu/lib/libio_stub.a(_sys_io_0001_17.o) uses unknown e_flags 0x1000001
/usr/local/ps3dev/ppu/bin/../lib/gcc/powerpc64-ps3-elf/13.2.0/../../../../powerpc64-ps3-elf/bin/ld: failed to merge target specific data of file /mnt/e/Development/Tools/cell/target/ppu/lib/libio_stub.a(_sys_io_0001_17.o)
/usr/local/ps3dev/ppu/bin/../lib/gcc/powerpc64-ps3-elf/13.2.0/../../../../powerpc64-ps3-elf/bin/ld: /mnt/e/Development/Tools/cell/target/ppu/lib/libio_stub.a(_sys_io_0001_head.o) uses unknown e_flags 0x1000001
/usr/local/ps3dev/ppu/bin/../lib/gcc/powerpc64-ps3-elf/13.2.0/../../../../powerpc64-ps3-elf/bin/ld: failed to merge target specific data of file /mnt/e/Development/Tools/cell/target/ppu/lib/libio_stub.a(_sys_io_0001_head.o)

When I try compiling with the SDK G++ 4.1.1 toolchain or the G++ 7.2.0 custom toolchain, these errors don't come up and it successfully links the program.

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.

5 participants