ps2dev / ps2sdk

Homebrew PS2 SDK
Other
935 stars 133 forks source link

Remove custom headers provided by GCC #644

Closed fjtrujy closed 2 months ago

fjtrujy commented 2 months ago

Description

This PR requires first some changes on the GCC patches for IOP, as it must generate the headers instead of using a custom one from ps2sdk.

IOP changes in GCC are now even smaller (almost everything vanilla): https://github.com/fjtrujy/gcc/commit/1c9e53872587b17ebbb9c8b62d68ebfa11caa149

I have checked OPL and it actually works fine (at least boot).

So in order to merge this PR we need first to apply the new GCC patch.

Cheers.

uyjulian commented 2 months ago

Another possibility is __has_include checks and define own types if header non existent

fjtrujy commented 2 months ago

Another possibility is __has_include checks and define own types if header non existent

But why is that going to be necessary if header for sure will exists? With the new IOP GCC changes it generates it for mipsel-ps2-irx on the same way that it is also generated for mipsel-none-elf.

I think this is a good step for approaching to a more standard toolchain for IOP too.

Wolf3s commented 2 months ago

Description

This PR requires first some changes on the GCC patches for IOP, as it must generate stdint.h instead of using a custom one in ps2sdk.

IOP changes in GCC are now even smaller (almost everything vanilla): fjtrujy/gcc@1c9e538

I have checked OPL and it actually works fine (at least boot).

So in order to merge this PR we need first to apply the new GCC patch.

Cheers.

Could go this pr go to other custom headers as well?

fjtrujy commented 2 months ago

Description

This PR requires first some changes on the GCC patches for IOP, as it must generate stdint.h instead of using a custom one in ps2sdk. IOP changes in GCC are now even smaller (almost everything vanilla): fjtrujy/gcc@1c9e538 I have checked OPL and it actually works fine (at least boot). So in order to merge this PR we need first to apply the new GCC patch. Cheers.

Could go this pr go to other custom headers as well?

Just stdint.h and limits.h are the only headers that can be removed from ps2sdk/iop as GCC just generates the next headers:

/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/float.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/gcov.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/iso646.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/limits.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/loongson-mmiintrin.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/loongson.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/msa.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdalign.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdarg.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdatomic.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdbool.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdckdint.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stddef.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdfix.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdint.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdnoreturn.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/syslimits.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/tgmath.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/unwind.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/varargs.h
Wolf3s commented 2 months ago

Description

This PR requires first some changes on the GCC patches for IOP, as it must generate stdint.h instead of using a custom one in ps2sdk. IOP changes in GCC are now even smaller (almost everything vanilla): fjtrujy/gcc@1c9e538 I have checked OPL and it actually works fine (at least boot). So in order to merge this PR we need first to apply the new GCC patch. Cheers.

Could go this pr go to other custom headers as well?

Just stdint.h and limits.h are the only headers that can be removed from ps2sdk/iop as GCC just generates the next headers:

/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/float.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/gcov.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/iso646.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/limits.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/loongson-mmiintrin.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/loongson.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/msa.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdalign.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdarg.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdatomic.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdbool.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdckdint.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stddef.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdfix.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdint.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdnoreturn.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/syslimits.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/tgmath.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/unwind.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/varargs.h

You could remove as well the limits.h.

fjtrujy commented 2 months ago

Description

This PR requires first some changes on the GCC patches for IOP, as it must generate stdint.h instead of using a custom one in ps2sdk. IOP changes in GCC are now even smaller (almost everything vanilla): fjtrujy/gcc@1c9e538 I have checked OPL and it actually works fine (at least boot). So in order to merge this PR we need first to apply the new GCC patch. Cheers.

Could go this pr go to other custom headers as well?

Just stdint.h and limits.h are the only headers that can be removed from ps2sdk/iop as GCC just generates the next headers:

/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/float.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/gcov.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/iso646.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/limits.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/loongson-mmiintrin.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/loongson.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/msa.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdalign.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdarg.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdatomic.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdbool.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdckdint.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stddef.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdfix.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdint.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdnoreturn.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/syslimits.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/tgmath.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/unwind.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/varargs.h

You could remove as well the limits.h.

It is removed already

Wolf3s commented 2 months ago

Description

This PR requires first some changes on the GCC patches for IOP, as it must generate stdint.h instead of using a custom one in ps2sdk. IOP changes in GCC are now even smaller (almost everything vanilla): fjtrujy/gcc@1c9e538 I have checked OPL and it actually works fine (at least boot). So in order to merge this PR we need first to apply the new GCC patch. Cheers.

Could go this pr go to other custom headers as well?

Just stdint.h and limits.h are the only headers that can be removed from ps2sdk/iop as GCC just generates the next headers:

/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/float.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/gcov.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/iso646.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/limits.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/loongson-mmiintrin.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/loongson.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/msa.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdalign.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdarg.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdatomic.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdbool.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdckdint.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stddef.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdfix.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdint.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdnoreturn.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/syslimits.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/tgmath.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/unwind.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/varargs.h

You could remove as well the limits.h.

It is removed already

Ok, now the pr should be name Remove custom stdint and limits

fjtrujy commented 2 months ago

Description

This PR requires first some changes on the GCC patches for IOP, as it must generate stdint.h instead of using a custom one in ps2sdk. IOP changes in GCC are now even smaller (almost everything vanilla): fjtrujy/gcc@1c9e538 I have checked OPL and it actually works fine (at least boot). So in order to merge this PR we need first to apply the new GCC patch. Cheers.

Could go this pr go to other custom headers as well?

Just stdint.h and limits.h are the only headers that can be removed from ps2sdk/iop as GCC just generates the next headers:

/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/float.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/gcov.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/iso646.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/limits.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/loongson-mmiintrin.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/loongson.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/msa.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdalign.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdarg.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdatomic.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdbool.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdckdint.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stddef.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdfix.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdint.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdnoreturn.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/syslimits.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/tgmath.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/unwind.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/varargs.h

You could remove as well the limits.h.

It is removed already

Ok, now the pr should be name Remove custom stdint and limits

Done already

Wolf3s commented 2 months ago

Description

This PR requires first some changes on the GCC patches for IOP, as it must generate stdint.h instead of using a custom one in ps2sdk. IOP changes in GCC are now even smaller (almost everything vanilla): fjtrujy/gcc@1c9e538 I have checked OPL and it actually works fine (at least boot). So in order to merge this PR we need first to apply the new GCC patch. Cheers.

Could go this pr go to other custom headers as well?

Just stdint.h and limits.h are the only headers that can be removed from ps2sdk/iop as GCC just generates the next headers:

/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/float.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/gcov.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/iso646.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/limits.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/loongson-mmiintrin.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/loongson.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/msa.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdalign.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdarg.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdatomic.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdbool.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdckdint.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stddef.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdfix.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdint.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/stdnoreturn.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/syslimits.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/tgmath.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/unwind.h
/ps2dev/iop/lib/gcc/mipsel-ps2-irx/14.1.0/include/varargs.h

You could remove as well the limits.h.

It is removed already

Ok, now the pr should be name Remove custom stdint and limits

Done already

Ok, At least less gcc implementations to ps2sdk. Although it should be nice if there was a way to remove all gcc implementations.