PlayStation 2 newlib port
Francisco Javier Trujillo Mata
fjtrujy@gmail.com
Tue Jun 20 07:05:04 GMT 2023
Hello Jeff,
First of all thanks for replying and paying attention to my message.
To install the proper PS2 Environment to be able to compile and generate
PS2 binaries, you require to follow the steps given here:
https://github.com/ps2dev/ps2dev
The PS2 is a complex machine, (it has 3 main CPUs DVP, IOP, and EE, which
means 3 toolchains...) so the whole PS2 development environment is not an
easy thing, there are plenty of tools and repositories involved, and as
part of this set of tools, and we also have Newlib, as you can see in the
next link (which is using a fork with our specific changes).
https://github.com/ps2dev/ps2toolchain-ee/blob/main/scripts/003-newlib.sh
However, if we just want to check if Newlib compiles for this PS2 port we
are creating, we just need to pay attention to the EE CPU, which is the
next repo:
https://github.com/ps2dev/ps2toolchain-ee
There under the "scripts" folder, you can see how Newlib is the 3rd step,
so if we want to check if Newlib is compiling, you just need to have proper
binutils and GCC installed previously (first and second steps).
Additionally, to make easier the usage of the whole PS2 toolchain, we are
offering some precompiled toolchains:
https://github.com/ps2dev/ps2dev/releases/tag/latest
And also the possibility of using dockers:
https://hub.docker.com/layers/ps2dev/ps2dev/latest/images/sha256-e6000652581b4d43d135f1862ecccabe4b11dd2afa3edb667b48736d815b59c1?context=explore
For executing the generated binaries, you will require either a PS2 that
allows you to execute homebrews or a PS2 emulator.
Regarding the changes I have made, all the files have been created from
scratch for me, anyway, I'm part of the PS2Dev community, so I will add the
PS2DEV license to these files.
Finally, regarding my original request, I was suffering issues when
compiling Newlib after adding the specific PS2 changes, I have found a
workaround to make it work, that probably will tell you more about the
actual issue.
When adding a new "sys" to the Newlib, in our case "newlib/libc/sys/ps2",
if you just add the crt0 file (it doesn't matter if it is .S, .s or .c),
which means that you "Makefile.inc" is going to be empty, you will suffer
the compilations issues that I previously mentioned.
fatal error: opening dependency file libc/sys/ps2/.deps/crt0.Tpo: No such
file or directory
However, if you add an extra file in the sys/ps2 directory, like a dummy.c
empty, and obviously, add the reference of this file into the
"Makefile.inc", then the library compiles properly generating the expected
".a" and ".o" files.
I suppose that the same issue that I'm speaking about most probably is also
being suffered with the tic80 system.
https://github.com/bminor/newlib/tree/master/newlib/libc/sys/tic80
Finally, I'm going to attach the compilation log.
Regards,
Francisco.
El lun, 19 jun 2023 a las 22:42, Jeff Johnston (<jjohnstn@redhat.com>)
escribió:
> Hi Francisco,
>
> If you would like help, I would suggest you tell others where they can get
> a proper toolset to build with or at least
> attach your build log which may provide more info. I certainly don't have
> a Playstation 2 toolset hanging around.
>
> In addition, looking at your patches, you are missing copyright/licensing
> info for the new files you are adding
> (as opposed to existing files you are modifying). If you are taking code
> from another location, you cannot change
> their license/copyright. If you wrote these from scratch you should
> indicate this but you still need to add the licensing/copyright
> info.
>
> Regards,
>
> -- Jeff J.
>
> On Tue, Jun 13, 2023 at 2:31 PM Francisco Javier Trujillo Mata <
> fjtrujy@gmail.com> wrote:
>
>> Hi there!
>> I would like to mainstream the PS2 newlib port. So far the PS2 has had
>> newlib ports for years, however, it was never intended to be merged into
>> the mainstream.
>>
>> I'm now trying to port to the latest release 4.3.0, however, I'm suffering
>> some errors during the compilation process.
>>
>> I have attached the changes that I have done so far.
>> Then I just rerun the command `autoreconf` using the proper autoconf and
>> automake versions
>>
>> I execute `configure` with:
>>
>> PROC_NR=$(getconf _NPROCESSORS_ONLN)
>>
>> TARGET="mips64r5900el-ps2-elf"
>> TARGET_ALIAS="ee"
>>
>> ## Create and enter the toolchain/build directory
>> rm -rf "build-$TARGET"
>> mkdir "build-$TARGET"
>> cd "build-$TARGET"
>>
>> ## Configure the build.
>> CFLAGS_FOR_TARGET="-O2" ../configure \
>> --prefix="$PS2DEV/$TARGET_ALIAS" \
>> --target="$TARGET" \
>> --enable-newlib-retargetable-locking \
>> $TARG_XTRA_OPTS
>>
>> ## Compile and install.
>> make -j "$PROC_NR" all
>>
>>
>> And then it always fails with this error,
>>
>> fatal error: opening dependency file libc/sys/ps2/.deps/crt0.Tpo: No such
>> file or directory
>>
>> Could you help me to identify where the issue is?
>>
>> Cheers.
>>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: newlib-PS2.log
Type: application/octet-stream
Size: 58964 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/newlib/attachments/20230620/bb1e90c3/attachment-0001.obj>
More information about the Newlib
mailing list