Fledge68 / WiiFlow_Lite

My mod of the Wii USB Loader WiiFlow
467 stars 58 forks source link

Build errors #385

Open impeeza opened 5 months ago

impeeza commented 5 months ago

On latest version of DevKitPro building Wiiflow_Lite you get the next set of errors:

image

I am missing any library or dependency

Even building a old commit which before I was able to build now I get the same set of errors.

eku commented 5 months ago

On latest version

Please specify more precisely.

Fledge68 commented 5 months ago

are you using devkitppc r42-1 and libogc 2.4.0

impeeza commented 5 months ago

are you using devkitppc r42-1 and libogc 2.4.0

No sir, I am Using: MingW64 updated today

and the devkitpro packages:

impeeza commented 5 months ago

By the way the same errors using Ubuntu 22 with the same packages

Fledge68 commented 5 months ago

so if you would just use devkitppc r42-1 and libogc 2.4.0 you shouldn't have those errors.

but as far as using the latest devkitppc and libogc im not sure why your libogc includes

netinet/in.h

and

sys/_sockaddr_storage.h

my libogc does not include those. i tried to see where they may have been added to libogc but couldn't find it.

obviously those files are conflicting the wolfssl files in portlibs/include/sys/socket.h

if you still want to use the latest ppc and libogc then goto portlibs/include/sys/socket.h and change all the socklen_t to socklen_t_w and sockaddr_storage to sockaddr_storage_w

and in source/libwolfssl/wolfio.h change the same ones to match socklen_t_w and sockaddr_storage_w

maybe that will work and maybe not.

impeeza commented 5 months ago

Excellent, thanks a lot for your help,

Using old version of DevKitPro Packages require manual work, but will take the time, also will try your workaround, after that I will let you to know

impeeza commented 5 months ago

OK, first try, I did add this commands before build in order to install old versions of packages:

wget https://wii.leseratte10.de/devkitPro/devkitPPC/r42%20%282023-04-19%29/devkitPPC-r42.1-1-windows_x86_64.pkg.tar.zst
pacman -U --noconfirm "./devkitPPC-r42.1-1-windows_x86_64.pkg.tar.zst"

wget https://wii.leseratte10.de/devkitPro/libogc/libogc_2.4.0%20%282023-04-06%29/libogc-2.4.0-1-any.pkg.tar.zst
pacman -U --noconfirm "./libogc-2.4.0-1-any.pkg.tar.zst"

And then the process end fine, the boot.dol file was build without problem, only few warnnings:

{standard input}: Assembler messages:
{standard input}: Warning: end of file in comment; newline inserted
linking ... boot.elf

bur are cosmetic no functional.

Will try the tweaking of files now.

impeeza commented 5 months ago

Well after changing the files, using

the next set of warnings appears to several files: image

and at end the next error interrupt the building: image

      |
T:/msys64/home/Impeeza/WiiFlow_Lite/source/network/https.c:306:5: error: conflicting types for 'connect'; have 'int(char *, u16)' {aka 'int(char *, short unsigned int)'}
  306 | int connect(char *host, u16 port)
      |     ^~~~~~~
T:/msys64/home/Impeeza/WiiFlow_Lite/portlibs/include/sys/socket.h:178:9: note: previous declaration of 'connect' with type 'int(int,  const struct sockaddr *, socklen_t_w)' {aka 'int(int,  const struct sockaddr *, unsigned char)'}
  178 | int     connect(int, const struct sockaddr *, socklen_t_w);
      |         ^~~~~~~
T:/msys64/home/Impeeza/WiiFlow_Lite/source/network/https.c: In function 'downloadfile':
T:/msys64/home/Impeeza/WiiFlow_Lite/source/network/https.c:374:25: warning: implicit declaration of function 'connect_W'; did you mean 'connect'? [-Wimplicit-function-declaration]
  374 |         httpinfo.sock = connect_W(getProxyAddress(), getProxyPort());
      |                         ^~~~~~~~~
      |                         connect
make[2]: *** [/opt/devkitpro/devkitPPC/base_rules:21: https.o] Error 1
make[1]: *** [/home/Impeeza/WiiFlow_Lite/Makefile.main:147: build] Error 2
make: *** [Makefile:12: all] Error 2

My C knowledge is very precarious so I can not help on this problem.