Atmosphere-NX / Atmosphere

Atmosphère is a work-in-progress customized firmware for the Nintendo Switch.
GNU General Public License v2.0
15.21k stars 1.25k forks source link

"large integer implicitly truncated to unsigned type" error occurred when build Atmosphere #107

Closed chengstone closed 6 years ago

chengstone commented 6 years ago

hi, when I do build Atmosphere at Ubuntu , got following errors, I Know its a uul type problem, but I dont know how to fix that:

`make -C exosphere make[1]: Entering directory '/home/chengstone/Downloads/Atmosphere/exosphere' arm-none-eabi-gcc -march=armv8-a -mtune=cortex-a57 -g -O2 -ffunction-sections -fdata-sections -fomit-frame-pointer -std=gnu11 -Werror -Wall -c -o build/sealedkeys.o src/sealedkeys.c arm-none-eabi-gcc -march=armv8-a -mtune=cortex-a57 -g -O2 -ffunction-sections -fdata-sections -fomit-frame-pointer -std=gnu11 -Werror -Wall -c -o build/coldboot_main.o src/coldboot_main.c In file included from src/coldboot_main.c:4:0: src/coldboot_main.c: In function 'coldboot_main': src/memory_map.h:132:53: error: large integer implicitly truncated to unsigned type [-Werror=overflow]

define TZRAM_GET_SEGMENT_ADDRESS(segment_id) (TUPLE_FOLD_LEFT_2(EVAL(segment_id), _MMAPTZS, PLUS) EVAL(TZRAM_SEGMENT_BASE))

                                                 ^

src/coldboot_main.c:12:24: note: in expansion of macro 'TZRAM_GET_SEGMENT_ADDRESS' uintptr_t pk2ldr = TZRAM_GET_SEGMENT_ADDRESS(TZRAM_SEGMENT_ID_PK2LDR); ^~~~~~~~~ cc1: all warnings being treated as errors Makefile:71: recipe for target 'build/coldboot_main.o' failed make[1]: [build/coldboot_main.o] Error 1 make[1]: Leaving directory '/home/chengstone/Downloads/Atmosphere/exosphere' Makefile:8: recipe for target 'exosphere' failed make: [exosphere] Error 2`

is there has some compile arguments? like -m64? or is this a c13, c15, c17 features? I only know use unsigned long long xxx replace #define xxx, but the work is huge. so you guys how to build that correctly? pls help.

SciresM commented 6 years ago

arm-none-eabi-gcc is not correct for exosphere, which is built with devkitA64 and not devkitARM (you should be using aarch64-none-elf-gcc...)