RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    lr-dosbox on rpi4 64bit error

    Scheduled Pinned Locked Moved Help and Support
    retropie 4.8rpi464bitbookworm
    4 Posts 2 Posters 663 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      mcpat
      last edited by

      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
      
      1 Reply Last reply Reply Quote 0
      • mituM
        mitu Global Moderator
        last edited by

        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.

        M 1 Reply Last reply Reply Quote 0
        • M
          mcpat @mitu
          last edited by

          @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.

          mituM 1 Reply Last reply Reply Quote 0
          • mituM
            mitu Global Moderator @mcpat
            last edited by

            @mcpat https://github.com/RetroPie/RetroPie-Setup/pull/3846

            1 Reply Last reply Reply Quote 0
            • First post
              Last post

            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.