libretro / mame2000-libretro

2000 version of MAME (0.37b5) for libretro. Compatible with iMAME4All/MAME4Droid/MAME 0.37b5 sets.
37 stars 54 forks source link

Compile using aarch64 fails with “error: expected '(' before '__volatile__'” #105

Closed heitbaum closed 1 year ago

heitbaum commented 1 year ago
/build/build.LibreELEC-ARMv8.aarch64-12.0-devel/toolchain/bin/aarch64-libreelec-linux-gnu-gcc  -DGP2X -DALIGN_INTS -DALIGN_SHORTS -Dasm="__asm__ __volatile__" -DMAME_UNDERCLOCK -DMAME_FASTSOUND -DENABLE_AUTOFIRE -DBIGCASE -D__LIBRETRO__ -DWANT_LIBCO -I./src/libretro/libretro-common/include -fPIC  -Isrc/zlib -Wno-sign-compare -Wunused -Wpointer-arith -Waggregate-return -Wshadow -I./src -I./src/libretro -I./src/libretro/libretro-common/include   -DHAS_Z80=1 -DHAS_8080=1 -DHAS_8085A=1 -DHAS_M6502=1 -DHAS_M65C02=1 -DHAS_M6510=1 -DHAS_N2A03=1 -DHAS_H6280=1 -DHAS_I86=1 -DHAS_I186=1 -DHAS_V20=1 -DHAS_V30=1 -DHAS_V33=1 -DHAS_I8035=1 -DHAS_I8039=1 -DHAS_I8048=1 -DHAS_N7751=1 -DHAS_M6800=1 -DHAS_M6801=1 -DHAS_M6802=1 -DHAS_M6803=1 -DHAS_M6808=1 -DHAS_HD63701=1 -DHAS_NSC8105=1 -DHAS_M6805=1 -DHAS_M68705=1 -DHAS_HD63705=1 -DHAS_M6805=1 -DHAS_HD6309=1 -DHAS_M6809=1 -DHAS_KONAMI=1 -DHAS_M68000=1 -DHAS_M68010=1 -DHAS_M68EC020=1 -DHAS_M68020=1 -DHAS_T11=1 -DHAS_S2650=1 -DHAS_TMS34010=1 -DHAS_TMS9980=1 -DHAS_Z8000=1 -DHAS_TMS320C10=1 -DHAS_CCPU=1 -DHAS_ADSP2100=1 -DHAS_ADSP2105=1 -DHAS_MIPS=1 -DHAS_AY8910=1 -DHAS_YM2203=1 -DHAS_YM2151=1 -DHAS_YM2608=1 -DHAS_YM2610=1 -DHAS_YM2610B=1 -DHAS_YM2612=1 -DHAS_YM3438=1 -DHAS_YM2413=1 -DHAS_YM3812=1 -DHAS_YM3526=1 -DHAS_Y8950=1 -DHAS_CUSTOM=1 -DHAS_YMZ280B=1 -DHAS_POKEY=1 -DHAS_QSOUND=1 -DHAS_SN76477=1 -DHAS_SN76496=1 -DHAS_TMS36XX=1 -DHAS_TMS5220=1 -DHAS_SEGAPCM=1 -DHAS_DISCRETE=1 -DHAS_DAC=1 -DHAS_ADPCM=1 -DHAS_OKIM6295=1 -DHAS_SAMPLES=1 -DHAS_ASTROCADE=1 -DHAS_NES=1 -DHAS_NAMCO=1 -DHAS_VLM5030=1 -DHAS_MSM5205=1 -DHAS_UPD7759=1 -DHAS_HC55516=1 -DHAS_K005289=1 -DHAS_K007232=1 -DHAS_K051649=1 -DHAS_K053260=1 -DHAS_K054539=1 -DHAS_RF5C68=1 -DHAS_CEM3394=1 -DHAS_C140=1 -march=armv8-a+crc -mabi=lp64 -Wno-psabi -mtune=cortex-a53 -mno-outline-atomics -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -fsigned-char -DGIT_VERSION=\"" 5a18099"\" -Dasm="__asm__ __volatile__" -O2 -DNDEBUG -c src/libretro/libretro-common/libco/libco.c -o src/libretro/libretro-common/libco/libco.o
/build/build.LibreELEC-ARMv8.aarch64-12.0-devel/toolchain/bin/aarch64-libreelec-linux-gnu-gcc  -DGP2X -DALIGN_INTS -DALIGN_SHORTS -Dasm="__asm__ __volatile__" -DMAME_UNDERCLOCK -DMAME_FASTSOUND -DENABLE_AUTOFIRE -DBIGCASE -D__LIBRETRO__ -DWANT_LIBCO -I./src/libretro/libretro-common/include -fPIC  -Isrc/zlib -Wno-sign-compare -Wunused -Wpointer-arith -Waggregate-return -Wshadow -I./src -I./src/libretro -I./src/libretro/libretro-common/include   -DHAS_Z80=1 -DHAS_8080=1 -DHAS_8085A=1 -DHAS_M6502=1 -DHAS_M65C02=1 -DHAS_M6510=1 -DHAS_N2A03=1 -DHAS_H6280=1 -DHAS_I86=1 -DHAS_I186=1 -DHAS_V20=1 -DHAS_V30=1 -DHAS_V33=1 -DHAS_I8035=1 -DHAS_I8039=1 -DHAS_I8048=1 -DHAS_N7751=1 -DHAS_M6800=1 -DHAS_M6801=1 -DHAS_M6802=1 -DHAS_M6803=1 -DHAS_M6808=1 -DHAS_HD63701=1 -DHAS_NSC8105=1 -DHAS_M6805=1 -DHAS_M68705=1 -DHAS_HD63705=1 -DHAS_M6805=1 -DHAS_HD6309=1 -DHAS_M6809=1 -DHAS_KONAMI=1 -DHAS_M68000=1 -DHAS_M68010=1 -DHAS_M68EC020=1 -DHAS_M68020=1 -DHAS_T11=1 -DHAS_S2650=1 -DHAS_TMS34010=1 -DHAS_TMS9980=1 -DHAS_Z8000=1 -DHAS_TMS320C10=1 -DHAS_CCPU=1 -DHAS_ADSP2100=1 -DHAS_ADSP2105=1 -DHAS_MIPS=1 -DHAS_AY8910=1 -DHAS_YM2203=1 -DHAS_YM2151=1 -DHAS_YM2608=1 -DHAS_YM2610=1 -DHAS_YM2610B=1 -DHAS_YM2612=1 -DHAS_YM3438=1 -DHAS_YM2413=1 -DHAS_YM3812=1 -DHAS_YM3526=1 -DHAS_Y8950=1 -DHAS_CUSTOM=1 -DHAS_YMZ280B=1 -DHAS_POKEY=1 -DHAS_QSOUND=1 -DHAS_SN76477=1 -DHAS_SN76496=1 -DHAS_TMS36XX=1 -DHAS_TMS5220=1 -DHAS_SEGAPCM=1 -DHAS_DISCRETE=1 -DHAS_DAC=1 -DHAS_ADPCM=1 -DHAS_OKIM6295=1 -DHAS_SAMPLES=1 -DHAS_ASTROCADE=1 -DHAS_NES=1 -DHAS_NAMCO=1 -DHAS_VLM5030=1 -DHAS_MSM5205=1 -DHAS_UPD7759=1 -DHAS_HC55516=1 -DHAS_K005289=1 -DHAS_K007232=1 -DHAS_K051649=1 -DHAS_K053260=1 -DHAS_K054539=1 -DHAS_RF5C68=1 -DHAS_CEM3394=1 -DHAS_C140=1 -march=armv8-a+crc -mabi=lp64 -Wno-psabi -mtune=cortex-a53 -mno-outline-atomics -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -fsigned-char -DGIT_VERSION=\"" 5a18099"\" -Dasm="__asm__ __volatile__" -O2 -DNDEBUG -c src/libretro/libretro-common/file/file_path.c -o src/libretro/libretro-common/file/file_path.o
<command-line>: error: expected '(' before '__volatile__'
src/libretro/libretro-common/libco/aarch64.c:25:1: note: in expansion of macro 'asm'
   25 | asm (
      | ^~~
In file included from src/libretro/libretro-common/libco/libco.c:31:
src/libretro/libretro-common/libco/aarch64.c:61:13: warning: 'crash' defined but not used [-Wunused-function]
   61 | static void crash(void)
      |             ^~~~~
make: *** [Makefile:581: src/libretro/libretro-common/libco/libco.o] Error 1
make: *** Waiting for unfinished jobs....
FAILURE: scripts/build libretro-mame2000:target during make_target (default)
heitbaum commented 1 year ago

As per gcc-8.3 and gcc-9 volatile is no longer valid.

https://github.com/libretro/mame2000-libretro/blob/0208517404e841fce0c094f1a2776a0e1c6c101d/src/libretro/libretro-common/libco/aarch64.c#L25