Reisyukaku/ReiNand

Compiling ReiNand with latest ctrulib from smea (commit: 1cef3e5) errors out

PeggerWed opened this issue · 7 comments

When compiling your source with latest ctrulib (commit 1cef3e5) from smealum you get the following errors:

(Note, this is for everything that uses CakeBrah/Brahmaloader (libkhax))

khaxinit.cpp
arm-none-eabi-g++ -MMD -MP -MF /d/ABuildCFWs/ReiNand/CakeBrah/build/khaxinit.d -
g -Wall -Wextra -O3 -mword-relocations -fomit-frame-pointer -ffast-math -march=a
rmv6k -mtune=mpcore -mfloat-abi=hard -I/d/ABuildCFWs/ReiNand/CakeBrah/include -I
/c/devkitPro/libctru/include -I/d/ABuildCFWs/ReiNand/CakeBrah/build -DARM11 -D_3
DS -DARM_ARCH -DLAUNCHER_PATH='"ReiNand.dat"' -fno-rtti -fno-exceptions -std=gnu
++11 -c /d/ABuildCFWs/ReiNand/CakeBrah/source/libkhax/khaxinit.cpp -o khaxinit.o

d:/ABuildCFWs/ReiNand/CakeBrah/source/libkhax/khaxinit.cpp: In function 'Result
KHAX::IsNew3DS(bool*, u32)':
d:/ABuildCFWs/ReiNand/CakeBrah/source/libkhax/khaxinit.cpp:985:47: error: cannot
 convert 'u8* {aka unsigned char*}' to 'bool*' for argument '1' to 'Result APT_C
heckNew3DS(bool*)'
   if (Result error = APT_CheckNew3DS(&isNew3DS))
                                               ^
make[2]: *** [khaxinit.o] Error 1
make[1]: *** [build] Error 2
make: *** [out/3ds/ReiNand] Error 2

Can any one else confirm this? because cakehax and cakebrah havent been updated in months, and i know this compiled fine when that ctrulib change happened. Looks like a quick fix is just to find that line and do:
Result error;
if(error = APT_CheckNew3DS(&isNew3DS))

that may or may not work.

I'm also getting that same error

TuxSH commented 12 hours ago • edited
Change:

u8 isNew3DS = 0;
to:

bool isNew3DS = 0;
I'm waiting for @Myriachan to fix this.
👍 1
@mariogamer2mariogamer2 referenced this issue in mid-kid/CakesForeveryWan 2 hours ago
Open
Compiling CakesFW with latest ctrulib from smea (commit: 1cef3e5) errors out #58
@PeggerWed

PeggerWed commented 6 minutes ago
Ok, thanks, this does indeed work for Luma3DS and CakesFW and ReiNand (and other CFW's)

But if gives another warning on all (but it compiles)

arm-none-eabi-g++ -MMD -MP -MF /d/Z_Testing/ReiNand/CakeBrah/build/khaxinit.d -g -Wall -Wextra -O3 -mword-relocations -fomit-frame-pointer -ffast-math -march=armv6k -mtune=mpcore -mfloat-abi=hard -I/d/Z_Testing/ReiNand/CakeBrah/i
nclude -I/c/devkitPro/libctru/include -I/d/Z_Testing/ReiNand/CakeBrah/build -DARM11 -D_3DS -DARM_ARCH -DLAUNCHER_PATH='"ReiNand.dat"' -fno-rtti -fno-exceptions -std=gnu++11 -c /d/Z_Testing/ReiNand/CakeBrah/source/libkhax/khaxinit
.cpp -o khaxinit.o
brahma.c
arm-none-eabi-gcc -MMD -MP -MF /d/Z_Testing/ReiNand/CakeBrah/build/brahma.d -g -Wall -Wextra -O3 -mword-relocations -fomit-frame-pointer -ffast-math -march=armv6k -mtune=mpcore -mfloat-abi=hard -I/d/Z_Testing/ReiNand/CakeBrah/inc
lude -I/c/devkitPro/libctru/include -I/d/Z_Testing/ReiNand/CakeBrah/build -DARM11 -D_3DS -DARM_ARCH -DLAUNCHER_PATH='"ReiNand.dat"' -c /d/Z_Testing/ReiNand/CakeBrah/source/brahma.c -o brahma.o
d:/Z_Testing/ReiNand/CakeBrah/source/brahma.c: In function 'get_exploit_data':
d:/Z_Testing/ReiNand/CakeBrah/source/brahma.c:61:18: warning: passing argument 1 of 'APT_CheckNew3DS' from incompatible pointer type [-Wincompatible-pointer-types]
  APT_CheckNew3DS(&isN3DS);
                  ^
In file included from c:/devkitPro/libctru/include/3ds.h:31:0,
                 from d:/Z_Testing/ReiNand/CakeBrah/source/brahma.c:1:
c:/devkitPro/libctru/include/3ds/services/apt.h:464:8: note: expected '_Bool *' but argument is of type 'u8 * {aka unsigned char *}'
 Result APT_CheckNew3DS(bool* out);
        ^
hid.c
arm-none-eabi-gcc -MMD -MP -MF /d/Z_Testing/ReiNand/CakeBrah/build/hid.d -g -Wall -Wextra -O3 -mword-relocations -fomit-frame-pointer -ffast-math -march=armv6k -mtune=mpcore -mfloat-abi=hard -I/d/Z_Testing/ReiNand/CakeBrah/includ
e -I/c/devkitPro/libctru/include -I/d/Z_Testing/ReiNand/CakeBrah/build -DARM11 -D_3DS -DARM_ARCH -DLAUNCHER_PATH='"ReiNand.dat"' -c /d/Z_Testing/ReiNand/CakeBrah/source/hid.c -o hid.o

Your proposition:

if(error = APT_CheckNew3DS(&isNew3DS))

result:

arm-none-eabi-gcc -MMD -MP -MF /d/Z_Testing/ReiNand/CakeBrah/build/brahma.d -g -Wall -Wextra -O3 -mword-relocations -fomit-frame-pointer -ffast-math -march=armv6k -mtune=mpcore -mfloat-abi=hard -I/d/Z_Testing/ReiNand/CakeBrah/include -I/
c/devkitPro/libctru/include -I/d/Z_Testing/ReiNand/CakeBrah/build -DARM11 -D_3DS -DARM_ARCH -DLAUNCHER_PATH='"ReiNand.dat"' -c /d/Z_Testing/ReiNand/CakeBrah/source/brahma.c -o brahma.o
d:/Z_Testing/ReiNand/CakeBrah/source/brahma.c: In function 'get_exploit_data':
d:/Z_Testing/ReiNand/CakeBrah/source/brahma.c:61:18: warning: passing argument 1 of 'APT_CheckNew3DS' from incompatible pointer type [-Wincompatible-pointer-types]
  APT_CheckNew3DS(&isN3DS);
                  ^
In file included from c:/devkitPro/libctru/include/3ds.h:31:0,
                 from d:/Z_Testing/ReiNand/CakeBrah/source/brahma.c:1:
c:/devkitPro/libctru/include/3ds/services/apt.h:464:8: note: expected '_Bool *' but argument is of type 'u8 * {aka unsigned char *}'
 Result APT_CheckNew3DS(bool* out);
        ^

Hmm.. try to cast isN3DS as a bool then. Or find the source and just change it to bool

There's a PR to libkhax to fix this already. Just waiting on it to be merged.

Why did you close this without commiting a fix first? Literally just updating CakeBrah fixes it.