Re: PlayStation 2 newlib port

Jeff Johnston <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <CAOox84vZG4bOQTWVy_SbjUxV+b-HDGiNMS92nU_D_GqHs3A0zw@mail.gmail.com>
Hi Francisco,

There were issues with the previous patch which did not have copyright
headers.  I don't see an updated patch in my mail logs.  Did you submit one?

-- Jeff J.

On Tue, Sep 19, 2023 at 12:38 PM Francisco Javier Trujillo Mata <
[email protected]> wrote:

> Any update here?
>
> I'm really interested in this, I would like to mainstream PS2 and PSP, and
> I'm also aware that the Dreamcast community is also preparing it for
> mainstreaming it.
>
> Cheers
>
> El mar, 20 jun 2023 a las 9:05, Francisco Javier Trujillo Mata (<
> [email protected]>) escribió:
>
>> 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 (<[email protected]>)
>> 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 <
>>> [email protected]> 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.
>>>>
>>>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.