ps2homebrew / Open-PS2-Loader

Game and app loader for Sony PlayStation 2
https://ps2homebrew.github.io/Open-PS2-Loader/
Academic Free License v3.0
2.02k stars 262 forks source link

[ISSUE]: Cant compile OPL. #1238

Closed wolfmanvid01 closed 2 weeks ago

wolfmanvid01 commented 1 month ago

Checks

Describe the issue

scmd.c:175:5: error: conflicting types for 'sceCdReadModelID'; have 'int(long unsigned int )' 175 | int sceCdReadModelID(unsigned long int ModelID) | ^~~~ In file included from /usr/local/ps2dev/ps2sdk/iop/include/cdvdman.h:22, from internal.h:27, from scmd.c:7: /usr/local/ps2dev/ps2sdk/common/include/libcdvd-common.h:883:5: note: previous declaration of 'sceCdReadModelID' with type 'int(unsigned int )' 883 | int sceCdReadModelID(unsigned int id); | ^~~~ scmd.c:181:5: error: conflicting types for 'sceCdReadDvdDualInfo'; have 'int(int , u32 )' {aka 'int(int , long unsigned int )'} 181 | int sceCdReadDvdDualInfo(int on_dual, u32 layer1_start) | ^~~~~~~~ /usr/local/ps2dev/ps2sdk/common/include/libcdvd-common.h:892:5: note: previous declaration of 'sceCdReadDvdDualInfo' with type 'int(int , unsigned int )' 892 | int sceCdReadDvdDualInfo(int on_dual, unsigned int layer1_start); | ^~~~~~~~ make[2]: [/usr/local/ps2dev/ps2sdk/samples/Makefile.iopglobal:82: obj.bdm/scmd.o] Error 1 make[2]: se sale del directorio '/home/pc/nuevodd/Open-PS2-Loader-latest/modules/iopcore/cdvdman' make[1]: [Makefile:372: modules/iopcore/cdvdman/bdm_cdvdman.irx] Error 2 make[1]: se sale del directorio '/home/pc/nuevodd/Open-PS2-Loader-latest' make: *** [Makefile:213: all] Error 2

Console model

SCPH-90001

OPL version / revision

v1.2.0-Beta-2082

In which device(s) have you experienced this issue?

No response

Context and extra information

No response

DoruDoLasu commented 1 month ago

yep, same. on latest ps2sdk

wolfmanvid01 commented 1 month ago

It seemed to be a confusion in the compiler between the types "u32" and "unsigned int" in some files of modules/iopcore/cdvdfsv and modules/iopcore/cdvdman. When i tried to make up that situation for at least having the compiler jumping over the problem, it got another issue with the library ps2dev/ps2sdk/iop/include/dev9.h in the file modules/iopcore/cdvdman/atad.c... which is as follows

obj.hdd/atad.o: unable to get decompressed section .debug_info obj.hdd/atad.o: in functionata_intr_cb': atad.c:(.text+0x1c0): undefined reference to SpdIntrDisable' /usr/local/ps2dev/iop/bin/../lib/gcc/mipsel-ps2-irx/14.1.0/../../../../mipsel-ps2-irx/bin/ld: obj.hdd/atad.o: in functionatad_start': (.text+0x240): undefined reference to SpdRegisterIntrHandler' /usr/local/ps2dev/iop/bin/../lib/gcc/mipsel-ps2-irx/14.1.0/../../../../mipsel-ps2-irx/bin/ld: (.text+0x250): undefined reference toSpdRegisterIntrHandler' /usr/local/ps2dev/iop/bin/../lib/gcc/mipsel-ps2-irx/14.1.0/../../../../mipsel-ps2-irx/bin/ld: (.text+0x294): undefined reference to Dev9RegisterPowerOffHandler' /usr/local/ps2dev/iop/bin/../lib/gcc/mipsel-ps2-irx/14.1.0/../../../../mipsel-ps2-irx/bin/ld: obj.hdd/atad.o: in functionata_io_start': (.text+0x560): undefined reference to SpdSetLED' /usr/local/ps2dev/iop/bin/../lib/gcc/mipsel-ps2-irx/14.1.0/../../../../mipsel-ps2-irx/bin/ld: (.text+0x5c0): undefined reference toSpdIntrEnable' /usr/local/ps2dev/iop/bin/../lib/gcc/mipsel-ps2-irx/14.1.0/../../../../mipsel-ps2-irx/bin/ld: obj.hdd/atad.o: in function ata_io_finish': (.text+0x6d0): undefined reference toSpdIntrEnable' /usr/local/ps2dev/iop/bin/../lib/gcc/mipsel-ps2-irx/14.1.0/../../../../mipsel-ps2-irx/bin/ld: (.text+0x72c): undefined reference to SpdIntrEnable' /usr/local/ps2dev/iop/bin/../lib/gcc/mipsel-ps2-irx/14.1.0/../../../../mipsel-ps2-irx/bin/ld: (.text+0x7b0): undefined reference toSpdSetLED' /usr/local/ps2dev/iop/bin/../lib/gcc/mipsel-ps2-irx/14.1.0/../../../../mipsel-ps2-irx/bin/ld: (.text+0x810): undefined reference to SpdDmaTransfer' collect2: error: ld returned 1 exit status make[2]: *** [/usr/local/ps2dev/ps2sdk/samples/Makefile.iopglobal:115: hdd_cdvdman.irx] Error 1

as if the functions SpdIntrDisable, SpdRegisterIntrHandler, Dev9RegisterPowerOffHandler, SpdSetLED, SpdIntrEnable, and SpdDmaTransfer are being called but not being defined, or at least not being linked

So what i did was to change the line 9 from #include to #include "dev9.h" to use the file included locally and not the one of the system.

10522 commented 1 month ago

@wolfmanvid01, check out this.

fjtrujy commented 2 weeks ago

Closing this issue as it has been solved. It was new GCC 14 requirements.