lr-dosbox on rpi4 64bit error
-
I tried to compile lr-dosbox on bookworm 64bit on my pi4 and resulted with an error:
Log started at: Tue Jan 23 01:05:26 PM CET 2024 RetroPie-Setup version: 4.8.6 (1fd3bf5) System: rpi4 (aarch64) - Debian GNU/Linux 12 (bookworm) - Linux gpm280 6.1.0-rpi7-rpi-v8 #1 SMP PREEMPT Debian 1:6.1.63-1+rpt1 (2023-11-24) aarch64 GNU/Linux /home/mcpat/RetroPie-Setup/tmp/build/lr-dosbox /home/mcpat/RetroPie-Setup/tmp/build/usbromservice/usbmount = = = = = = = = = = = = = = = = = = = = = Getting sources for 'lr-dosbox' : DOS emulator = = = = = = = = = = = = = = = = = = = = = git clone --recursive --depth 1 --shallow-submodules --branch master "https://github.com/libretro/dosbox-libretro.git" "/home/mcpat/RetroPie-Setup/tmp/build/lr-dosbox" Cloning into '/home/mcpat/RetroPie-Setup/tmp/build/lr-dosbox'... HEAD is now in branch 'master' at commit 'b7b24262c282c0caef2368c87323ff8c381b3102' /home/mcpat/RetroPie-Setup/tmp/build/usbromservice/usbmount /home/mcpat/RetroPie-Setup/tmp/build/lr-dosbox /home/mcpat/RetroPie-Setup/tmp/build/usbromservice/usbmount = = = = = = = = = = = = = = = = = = = = = Building 'lr-dosbox' : DOS emulator = = = = = = = = = = = = = = = = = = = = = rm -f ./libretro-common/file/retro_dirent.o ./libretro-common/file/retro_stat.o ./libretro-common/libco/libco.o ./libretro/dos_gfx.o ./libretro/dosbox.o ./libretro/libretro.o ./libretro/mapper.o ./libretro/mixer-retro.o ./libretro/nonlibc/snprintf.o ./libretro/render.o ./libretro/render_scalers.o ./src/cpu/callback.o ./src/cpu/core_dyn_x86.o ./src/cpu/core_dynrec.o ./src/cpu/core_full.o ./src/cpu/core_normal.o ./src/cpu/core_prefetch.o ./src/cpu/core_simple.o ./src/cpu/cpu.o ./src/cpu/flags.o ./src/cpu/mmx.o ./src/cpu/modrm.o ./src/cpu/paging.o ./src/dos/cdrom.o ./src/dos/cdrom_image.o ./src/dos/dos.o ./src/dos/dos_classes.o ./src/dos/dos_devices.o ./src/dos/dos_execute.o ./src/dos/dos_files.o ./src/dos/dos_ioctl.o ./src/dos/dos_keyboard_layout.o ./src/dos/dos_memory.o ./src/dos/dos_misc.o ./src/dos/dos_mscdex.o ./src/dos/dos_programs.o ./src/dos/dos_tables.o ./src/dos/drive_cache.o ./src/dos/drive_fat.o ./src/dos/drive_iso.o ./src/dos/drive_local.o ./src/dos/drive_virtual.o ./src/dos/drives.o ./src/fpu/fpu.o ./src/hardware/adlib.o ./src/hardware/cmos.o ./src/hardware/dbopl.o ./src/hardware/disney.o ./src/hardware/dma.o ./src/hardware/gameblaster.o ./src/hardware/gus.o ./src/hardware/hardware.o ./src/hardware/iohandler.o ./src/hardware/joystick.o ./src/hardware/keyboard.o ./src/hardware/memory.o ./src/hardware/mpu401.o ./src/hardware/pci_bus.o ./src/hardware/pcspeaker.o ./src/hardware/pic.o ./src/hardware/sblaster.o ./src/hardware/serialport/directserial.o ./src/hardware/serialport/libserial.o ./src/hardware/serialport/misc_util.o ./src/hardware/serialport/nullmodem.o ./src/hardware/serialport/serialdummy.o ./src/hardware/serialport/serialport.o ./src/hardware/serialport/softmodem.o ./src/hardware/tandy_sound.o ./src/hardware/timer.o ./src/hardware/vga.o ./src/hardware/vga_attr.o ./src/hardware/vga_crtc.o ./src/hardware/vga_dac.o ./src/hardware/vga_draw.o ./src/hardware/vga_gfx.o ./src/hardware/vga_memory.o ./src/hardware/vga_misc.o ./src/hardware/vga_other.o ./src/hardware/vga_paradise.o ./src/hardware/vga_s3.o ./src/hardware/vga_seq.o ./src/hardware/vga_tseng.o ./src/hardware/vga_xga.o ./src/ints/bios.o ./src/ints/bios_disk.o ./src/ints/bios_keyboard.o ./src/ints/ems.o ./src/ints/int10.o ./src/ints/int10_char.o ./src/ints/int10_memory.o ./src/ints/int10_misc.o ./src/ints/int10_modes.o ./src/ints/int10_pal.o ./src/ints/int10_put_pixel.o ./src/ints/int10_vesa.o ./src/ints/int10_video_state.o ./src/ints/int10_vptable.o ./src/ints/mouse.o ./src/ints/xms.o ./src/midi/midi.o ./src/midi/munt/Analog.o ./src/midi/munt/BReverbModel.o ./src/midi/munt/File.o ./src/midi/munt/FileStream.o ./src/midi/munt/LA32Ramp.o ./src/midi/munt/LA32WaveGenerator.o ./src/midi/munt/MidiStreamParser.o ./src/midi/munt/Part.o ./src/midi/munt/Partial.o ./src/midi/munt/PartialManager.o ./src/midi/munt/Poly.o ./src/midi/munt/ROMInfo.o ./src/midi/munt/Synth.o ./src/midi/munt/TVA.o ./src/midi/munt/TVF.o ./src/midi/munt/TVP.o ./src/midi/munt/Tables.o ./src/midi/munt/sha1/sha1.o ./src/misc/cross.o ./src/misc/messages.o ./src/misc/programs.o ./src/misc/setup.o ./src/misc/support.o ./src/shell/shell.o ./src/shell/shell_batch.o ./src/shell/shell_cmds.o ./src/shell/shell_misc.o dosbox_libretro.so cc -mcpu=cortex-a72 -O2 -D__LIBRETRO__ -fPIC -I./src -I./libretro -I./libretro-common/include -I./include -I./src/midi/munt -DC_HAVE_MPROTECT="1" -O3 -DNDEBUG -DGIT_VERSION=\"" b7b2426"\" -DSVN_VERSION=\"\" -c libretro-common/file/retro_dirent.c -o libretro-common/file/retro_dirent.o cc -mcpu=cortex-a72 -O2 -D__LIBRETRO__ -fPIC -I./src -I./libretro -I./libretro-common/include -I./include -I./src/midi/munt -DC_HAVE_MPROTECT="1" -O3 -DNDEBUG -DGIT_VERSION=\"" b7b2426"\" -DSVN_VERSION=\"\" -c libretro-common/file/retro_stat.c -o libretro-common/file/retro_stat.o cc -mcpu=cortex-a72 -O2 -D__LIBRETRO__ -fPIC -I./src -I./libretro -I./libretro-common/include -I./include -I./src/midi/munt -DC_HAVE_MPROTECT="1" -O3 -DNDEBUG -DGIT_VERSION=\"" b7b2426"\" -DSVN_VERSION=\"\" -c libretro-common/libco/libco.c -o libretro-common/libco/libco.o g++ -mcpu=cortex-a72 -O2 -D__LIBRETRO__ -fPIC -I./src -I./libretro -I./libretro-common/include -I./include -I./src/midi/munt -DC_HAVE_MPROTECT="1" -O3 -DNDEBUG -DGIT_VERSION=\"" b7b2426"\" -DSVN_VERSION=\"\" -c libretro/dos_gfx.cpp -o libretro/dos_gfx.o g++ -mcpu=cortex-a72 -O2 -D__LIBRETRO__ -fPIC -I./src -I./libretro -I./libretro-common/include -I./include -I./src/midi/munt -DC_HAVE_MPROTECT="1" -O3 -DNDEBUG -DGIT_VERSION=\"" b7b2426"\" -DSVN_VERSION=\"\" -c libretro/dosbox.cpp -o libretro/dosbox.o g++ -mcpu=cortex-a72 -O2 -D__LIBRETRO__ -fPIC -I./src -I./libretro -I./libretro-common/include -I./include -I./src/midi/munt -DC_HAVE_MPROTECT="1" -O3 -DNDEBUG -DGIT_VERSION=\"" b7b2426"\" -DSVN_VERSION=\"\" -c libretro/libretro.cpp -o libretro/libretro.o In file included from libretro/libretro.cpp:35: ./include/setup.h:94:35: error: ISO C++17 does not allow dynamic exception specifications 94 | Value& operator= (Hex in) throw(WrongType) { return copy(Value(in));} | ^~~~~ ./include/setup.h:95:35: error: ISO C++17 does not allow dynamic exception specifications 95 | Value& operator= (int in) throw(WrongType) { return copy(Value(in));} | ^~~~~ ./include/setup.h:96:36: error: ISO C++17 does not allow dynamic exception specifications 96 | Value& operator= (bool in) throw(WrongType) { return copy(Value(in));} | ^~~~~ ./include/setup.h:97:38: error: ISO C++17 does not allow dynamic exception specifications 97 | Value& operator= (double in) throw(WrongType) { return copy(Value(in));} | ^~~~~ ./include/setup.h:98:50: error: ISO C++17 does not allow dynamic exception specifications 98 | Value& operator= (std::string const& in) throw(WrongType) { return copy(Value(in));} | ^~~~~ ./include/setup.h:99:50: error: ISO C++17 does not allow dynamic exception specifications 99 | Value& operator= (char const * const in) throw(WrongType) { return copy(Value(in));} | ^~~~~ ./include/setup.h:100:44: error: ISO C++17 does not allow dynamic exception specifications 100 | Value& operator= (Value const& in) throw(WrongType) { return copy(Value(in));} | ^~~~~ ./include/setup.h:103:32: error: ISO C++17 does not allow dynamic exception specifications 103 | operator bool () const throw(WrongType); | ^~~~~ ./include/setup.h:104:31: error: ISO C++17 does not allow dynamic exception specifications 104 | operator Hex () const throw(WrongType); | ^~~~~ ./include/setup.h:105:31: error: ISO C++17 does not allow dynamic exception specifications 105 | operator int () const throw(WrongType); | ^~~~~ ./include/setup.h:106:34: error: ISO C++17 does not allow dynamic exception specifications 106 | operator double () const throw(WrongType); | ^~~~~ ./include/setup.h:107:39: error: ISO C++17 does not allow dynamic exception specifications 107 | operator char const* () const throw(WrongType); | ^~~~~ ./include/setup.h:108:70: error: ISO C++17 does not allow dynamic exception specifications 108 | bool SetValue(std::string const& in,Etype _type = V_CURRENT) throw(WrongType); | ^~~~~ ./include/setup.h:113:38: error: ISO C++17 does not allow dynamic exception specifications 113 | Value& copy(Value const& in) throw(WrongType); | ^~~~~ In file included from libretro/dosbox.cpp:38: ./include/setup.h:94:35: error: ISO C++17 does not allow dynamic exception specifications 94 | Value& operator= (Hex in) throw(WrongType) { return copy(Value(in));} | ^~~~~ ./include/setup.h:95:35: error: ISO C++17 does not allow dynamic exception specifications 95 | Value& operator= (int in) throw(WrongType) { return copy(Value(in));} | ^~~~~ ./include/setup.h:96:36: error: ISO C++17 does not allow dynamic exception specifications 96 | Value& operator= (bool in) throw(WrongType) { return copy(Value(in));} | ^~~~~ ./include/setup.h:97:38: error: ISO C++17 does not allow dynamic exception specifications 97 | Value& operator= (double in) throw(WrongType) { return copy(Value(in));} | ^~~~~ ./include/setup.h:98:50: error: ISO C++17 does not allow dynamic exception specifications 98 | Value& operator= (std::string const& in) throw(WrongType) { return copy(Value(in));} | ^~~~~ ./include/setup.h:99:50: error: ISO C++17 does not allow dynamic exception specifications 99 | Value& operator= (char const * const in) throw(WrongType) { return copy(Value(in));} | ^~~~~ ./include/setup.h:100:44: error: ISO C++17 does not allow dynamic exception specifications 100 | Value& operator= (Value const& in) throw(WrongType) { return copy(Value(in));} | ^~~~~ ./include/setup.h:103:32: error: ISO C++17 does not allow dynamic exception specifications 103 | operator bool () const throw(WrongType); | ^~~~~ ./include/setup.h:104:31: error: ISO C++17 does not allow dynamic exception specifications 104 | operator Hex () const throw(WrongType); | ^~~~~ ./include/setup.h:105:31: error: ISO C++17 does not allow dynamic exception specifications 105 | operator int () const throw(WrongType); | ^~~~~ ./include/setup.h:106:34: error: ISO C++17 does not allow dynamic exception specifications 106 | operator double () const throw(WrongType); | ^~~~~ ./include/setup.h:107:39: error: ISO C++17 does not allow dynamic exception specifications 107 | operator char const* () const throw(WrongType); | ^~~~~ ./include/setup.h:108:70: error: ISO C++17 does not allow dynamic exception specifications 108 | bool SetValue(std::string const& in,Etype _type = V_CURRENT) throw(WrongType); | ^~~~~ ./include/setup.h:113:38: error: ISO C++17 does not allow dynamic exception specifications 113 | Value& copy(Value const& in) throw(WrongType); | ^~~~~ make: *** [Makefile.libretro:249: libretro/libretro.o] Error 1 make: *** Waiting for unfinished jobs.... make: *** [Makefile.libretro:249: libretro/dosbox.o] Error 1 Could not successfully build lr-dosbox - DOS emulator (/home/mcpat/RetroPie-Setup/tmp/build/lr-dosbox/dosbox_libretro.so not found). /home/mcpat/RetroPie-Setup/tmp/build/usbromservice/usbmount Log ended at: Tue Jan 23 01:05:31 PM CET 2024 Total running time: 0 hours, 0 mins, 5 secs
-
Yes, it's a known issue with that core and newer
gcc/g++
versions. It has a corresponding issue in the upstream repository if you want to check it out.
Bookworm support is not yet finished in RetroPie, so issues with it are expected - just like this error. -
@mitu I solved it with adding
-std=gnu++11
to the flags in the makefile and did a recompile, I have now the dosbox, but if there is an update without this flag, then the error will appear again I suppose.
-
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.