Bug#966344: mupen64plus-core: FTBFS with GCC 10: multiple definition of ... due to -fno-common

Andreas Beckmann anbe at debian.org
Mon Jul 27 09:39:41 BST 2020


Source: mupen64plus-core
Version: 2.5.9-2
Severity: serious
Tags: ftbfs
Justification: fails to build from source (but built successfully in the past)
User: debian-gcc at lists.debian.org
Usertags: ftbfs-gcc-10
Control: found -1 2.5-6

Hi,

mupen64plus-core started to FTBFS when GCC 10 was made the default compiler:

g++ -DNDEBUG -Wall -g -O2 -fdebug-prefix-map=/build/mupen64plus-core-2.5.9=. -specs=/usr/share/dpkg/no-pie-compile.specs -fstack-protector-strong -Wformat -Werror=format-security -fvisibility-inlines-hidden -I../../subprojects/oglft -g -O2 -fdebug-prefix-map=
/build/mupen64plus-core-2.5.9=. -specs=/usr/share/dpkg/no-pie-compile.specs -fstack-protector-strong -Wformat -Werror=format-security -flto -ffast-math -fno-strict-aliasing -fvisibility=hidden -I../../src -I../../src/asm_defines -DM64P_PARALLEL -fPIC  -I/usr/
include/minizip -I/usr/include/libpng16 -I/usr/include/opencv4/opencv -I/usr/include/opencv4 -I/usr/include/SDL2 -D_REENTRANT -DM64P_OSD -I/usr/include/freetype2 -I/usr/include/libpng16   -g -DDBG -DSHAREDIR="/usr/share/games/mupen64plus/" -I../../subprojects
/md5 -I../../subprojects/xxhash -DDYNAREC -DM64P_OPENCV -MD -MP -specs=/usr/share/dpkg/no-pie-link.specs -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -Wl,-Bsymbolic -shared -Wl,-export-dynamic -Wl,-soname,libmupen64plus.so.2 -Wl,-version-script,../../src/api/api_e
xport.ver  _obj/api/callbacks.o _obj/api/common.o _obj/api/config.o _obj/api/debugger.o _obj/api/frontend.o _obj/api/vidext.o _obj/backends/api/video_capture_backend.o _obj/backends/plugins_compat/audio_plugin_compat.o _obj/backends/plugins_compat/input_plugi
n_compat.o _obj/backends/clock_ctime_plus_delta.o _obj/backends/dummy_video_capture.o _obj/backends/file_storage.o _obj/device/cart/cart.o _obj/device/cart/af_rtc.o _obj/device/cart/cart_rom.o _obj/device/cart/eeprom.o _obj/device/cart/flashram.o _obj/device/
cart/sram.o _obj/device/controllers/game_controller.o _obj/device/controllers/paks/biopak.o _obj/device/controllers/paks/mempak.o _obj/device/controllers/paks/rumblepak.o _obj/device/controllers/paks/transferpak.o _obj/device/dd/dd_controller.o _obj/device/de
vice.o _obj/device/gb/gb_cart.o _obj/device/gb/mbc3_rtc.o _obj/device/gb/m64282fp.o _obj/device/memory/memory.o _obj/device/pif/bootrom_hle.o _obj/device/pif/cic.o _obj/device/pif/n64_cic_nus_6105.o _obj/device/pif/pif.o _obj/device/r4300/cached_interp.o _obj
/device/r4300/cp0.o _obj/device/r4300/cp1.o _obj/device/r4300/idec.o _obj/device/r4300/interrupt.o _obj/device/r4300/pure_interp.o _obj/device/r4300/r4300_core.o _obj/device/r4300/tlb.o _obj/device/rcp/ai/ai_controller.o _obj/device/rcp/mi/mi_controller.o _ob
j/device/rcp/pi/pi_controller.o _obj/device/rcp/rdp/fb.o _obj/device/rcp/rdp/rdp_core.o _obj/device/rcp/ri/ri_controller.o _obj/device/rcp/rsp/rsp_core.o _obj/device/rcp/si/si_controller.o _obj/device/rcp/vi/vi_controller.o _obj/device/rdram/rdram.o _obj/main
/main.o _obj/main/util.o _obj/main/cheat.o _obj/main/eventloop.o _obj/main/rom.o _obj/main/savestates.o _obj/main/screenshot.o _obj/main/sdl_key_converter.o _obj/main/workqueue.o _obj/plugin/plugin.o _obj/plugin/dummy_video.o _obj/plugin/dummy_audio.o _obj/pl
ugin/dummy_input.o _obj/plugin/dummy_rsp.o _obj/osal/dynamiclib_unix.o _obj/osal/files_unix.o _obj/osd/osd.o _obj/device/r4300/recomp.o _obj/device/r4300/x86_64/assemble.o _obj/device/r4300/x86_64/dynarec.o _obj/device/r4300/x86_64/regcache.o _obj/debugger/db
g_debugger.o _obj/debugger/dbg_decoder.o _obj/debugger/dbg_memory.o _obj/debugger/dbg_breakpoints.o _obj/subprojects/md5/md5.o _obj/subprojects/xxhash/xxhash.o _obj/asm_defines/asm_defines.o _obj/osd/oglft_c.o _obj/backends/opencv_video_capture.o _obj/subproj
ects/oglft/OGLFT.o _obj/device/r4300/x86_64/dyna_start.o  -lm -ldl -lz -lminizip -lpng16 -lz -lopencv_stitching -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dnn_superres -lopencv_dpm -lopencv_highgui -lop
encv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_quality -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_shape -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_ml -lopencv_videostab -lopencv_videoio -lopencv_viz -lopencv_ximgproc -lopencv_video -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core -lSDL2 -lfreetype -lGL -lGLU -lGL -o libmupen64plus.so.2.0.0
/usr/bin/ld: _obj/device/r4300/idec.o (symbol from plugin): in function `r4300_get_idec':
(.text+0x0): multiple definition of `g_r4300_opcodes'; _obj/device/r4300/cached_interp.o (symbol from plugin):(.text+0x0): first defined here
/usr/bin/ld: _obj/device/r4300/interrupt.o (symbol from plugin): in function `add_random_interrupt_time':
(.text+0x0): multiple definition of `g_r4300_opcodes'; _obj/device/r4300/cached_interp.o (symbol from plugin):(.text+0x0): first defined here
/usr/bin/ld: _obj/device/r4300/r4300_core.o (symbol from plugin): in function `init_r4300':
(.text+0x0): multiple definition of `g_r4300_opcodes'; _obj/device/r4300/cached_interp.o (symbol from plugin):(.text+0x0): first defined here
/usr/bin/ld: _obj/main/savestates.o (symbol from plugin): in function `savestates_select_slot':
(.text+0x0): multiple definition of `work'; _obj/api/frontend.o (symbol from plugin):(.text+0x0): first defined here
/usr/bin/ld: _obj/main/workqueue.o (symbol from plugin): in function `workqueue_init':
(.text+0x0): multiple definition of `work'; _obj/api/frontend.o (symbol from plugin):(.text+0x0): first defined here
/usr/bin/ld: _obj/device/r4300/recomp.o (symbol from plugin): in function `dynarec_fin_block':
(.text+0x0): multiple definition of `g_r4300_opcodes'; _obj/device/r4300/cached_interp.o (symbol from plugin):(.text+0x0): first defined here
/usr/bin/ld: _obj/device/r4300/x86_64/dynarec.o (symbol from plugin): in function `dyna_jump':
(.text+0x0): multiple definition of `g_r4300_opcodes'; _obj/device/r4300/cached_interp.o (symbol from plugin):(.text+0x0): first defined here
/usr/bin/ld: _obj/debugger/dbg_memory.o (symbol from plugin): in function `get_num_recompiled':
(.text+0x0): multiple definition of `g_r4300_opcodes'; _obj/device/r4300/cached_interp.o (symbol from plugin):(.text+0x0): first defined here
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:789: libmupen64plus.so.2.0.0] Error 1

More information about the corresponding GCC change can be found here:
https://gcc.gnu.org/gcc-10/porting_to.html
"Default to -fno-common"


Andreas



More information about the Pkg-games-devel mailing list