[Bug 2015742] [NEW] libretro-bsnes-mercury FTBFS with LTO

Graham Inggs 2015742 at bugs.launchpad.net
Mon Apr 10 09:58:06 UTC 2023


Public bug reported:

libretro-bsnes-mercury 094+git20220807-6 FTBFS when built with LTO
enabled.

gb/interface/interface.o gb/system/system.o gb/scheduler/scheduler.o gb/memory/memory.o gb/cartridge/cartridge.o gb/cpu/cpu.o gb/ppu/ppu.o gb/apu/apu.o gb/cheat/cheat.o gb/video/video.o sfc/interface/interface.o sfc/base/satellaview/satellaview.o sfc/system/system.o sfc/controller/controller.o sfc/cartridge/cartridge.o sfc/cheat/cheat.o sfc/memory/memory.o sfc/chip/icd2/icd2.o sfc/chip/bsx/bsx.o sfc/chip/nss/nss.o sfc/chip/event/event.o sfc/chip/sa1/sa1.o sfc/chip/superfx/superfx.o sfc/chip/armdsp/armdsp.o sfc/chip/hitachidsp/hitachidsp.o sfc/chip/necdsp/necdsp.o sfc/chip/epsonrtc/epsonrtc.o sfc/chip/sharprtc/sharprtc.o sfc/chip/spc7110/spc7110.o sfc/chip/sdd1/sdd1.o sfc/chip/obc1/obc1.o sfc/chip/hsu1/hsu1.o sfc/chip/msu1/msu1.o sfc/slot/satellaview/satellaview.o sfc/slot/sufamiturbo/sufamiturbo.o sfc/chip/dsp1/dsp1.o sfc/chip/dsp2/dsp2.o sfc/chip/dsp3/dsp3.o sfc/chip/dsp4/dsp4.o sfc/chip/cx4/cx4.o sfc/chip/st0010/st0010.o sfc/chip/sgb-external/sgb-external.o target-libretro/libretro.o sfc/cpu/cpu.o sfc/smp/smp.o sfc/dsp/dsp.o sfc/ppu/ppu.o libco/libco.o -Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -Wl,--no-undefined -ldl -fPIC -shared -Wl,--no-undefined -Wl,--version-script=target-libretro/link.T 
./sfc/memory/memory.hpp:50:8: warning: type ‘struct Bus’ violates the C++ One Definition Rule [-Wodr]
   50 | struct Bus {
      |        ^
./sfc/memory/memory.hpp:50:8: note: a different type is defined in another translation unit
   50 | struct Bus {
      |        ^
./sfc/memory/memory.hpp:80:35: note: the first difference of corresponding definitions is field ‘libretro_mem_map’
   80 |   vector<retro_memory_descriptor> libretro_mem_map;
      |                                   ^
./sfc/memory/memory.hpp:80:35: note: a field of same name but different type is defined in another translation unit
   80 |   vector<retro_memory_descriptor> libretro_mem_map;
      |                                   ^
./nall/vector.hpp:15:29: note: type name ‘nall::vector<SuperFamicom::retro_memory_descriptor>’ should match type name ‘nall::vector<retro_memory_descriptor>’
   15 | template<typename T> struct vector {
      |                             ^
./sfc/memory/memory.hpp:87:12: warning: ‘bus’ violates the C++ One Definition Rule [-Wodr]
   87 | extern Bus bus;
      |            ^
./sfc/memory/memory.hpp:50:8: note: type ‘struct Bus’ itself violates the C++ One Definition Rule
   50 | struct Bus {
      |        ^
sfc/memory/memory.cpp:7:5: note: ‘bus’ was previously declared here
    7 | Bus bus;
      |     ^
In member function ‘op_readpc’,
    inlined from ‘enter’ at sfc/chip/sa1/sa1.cpp:35:35,
    inlined from ‘Enter’ at sfc/chip/sa1/sa1.cpp:14:30:
sfc/chip/sa1/memory/memory.cpp:116:7: error: inlining failed in call to ‘always_inline’ ‘op_read’: function not considered for inlining
  116 | uint8 SA1::op_read(unsigned addr) {
      |       ^
./processor/r65816/memory.hpp:2:17: note: called from here
    2 |   return op_read((regs.pc.b << 16) + regs.pc.w++);
      |                 ^

** Affects: libretro-bsnes-mercury (Ubuntu)
     Importance: Undecided
         Status: New

** Affects: lto-disabled-list (Ubuntu)
     Importance: Undecided
         Status: New

** Affects: libretro-bsnes-mercury (Debian)
     Importance: Unknown
         Status: Unknown


** Tags: update-excuse

** Bug watch added: Debian Bug tracker #1015518
   https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1015518

** Also affects: libretro-bsnes-mercury (Debian) via
   https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1015518
   Importance: Unknown
       Status: Unknown

** Also affects: lto-disabled-list (Ubuntu)
   Importance: Undecided
       Status: New

** Tags added: update-excuse

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to lto-disabled-list in Ubuntu.
https://bugs.launchpad.net/bugs/2015742

Title:
  libretro-bsnes-mercury FTBFS with LTO

Status in libretro-bsnes-mercury package in Ubuntu:
  New
Status in lto-disabled-list package in Ubuntu:
  New
Status in libretro-bsnes-mercury package in Debian:
  Unknown

Bug description:
  libretro-bsnes-mercury 094+git20220807-6 FTBFS when built with LTO
  enabled.

  gb/interface/interface.o gb/system/system.o gb/scheduler/scheduler.o gb/memory/memory.o gb/cartridge/cartridge.o gb/cpu/cpu.o gb/ppu/ppu.o gb/apu/apu.o gb/cheat/cheat.o gb/video/video.o sfc/interface/interface.o sfc/base/satellaview/satellaview.o sfc/system/system.o sfc/controller/controller.o sfc/cartridge/cartridge.o sfc/cheat/cheat.o sfc/memory/memory.o sfc/chip/icd2/icd2.o sfc/chip/bsx/bsx.o sfc/chip/nss/nss.o sfc/chip/event/event.o sfc/chip/sa1/sa1.o sfc/chip/superfx/superfx.o sfc/chip/armdsp/armdsp.o sfc/chip/hitachidsp/hitachidsp.o sfc/chip/necdsp/necdsp.o sfc/chip/epsonrtc/epsonrtc.o sfc/chip/sharprtc/sharprtc.o sfc/chip/spc7110/spc7110.o sfc/chip/sdd1/sdd1.o sfc/chip/obc1/obc1.o sfc/chip/hsu1/hsu1.o sfc/chip/msu1/msu1.o sfc/slot/satellaview/satellaview.o sfc/slot/sufamiturbo/sufamiturbo.o sfc/chip/dsp1/dsp1.o sfc/chip/dsp2/dsp2.o sfc/chip/dsp3/dsp3.o sfc/chip/dsp4/dsp4.o sfc/chip/cx4/cx4.o sfc/chip/st0010/st0010.o sfc/chip/sgb-external/sgb-external.o target-libretro/libretro.o sfc/cpu/cpu.o sfc/smp/smp.o sfc/dsp/dsp.o sfc/ppu/ppu.o libco/libco.o -Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -Wl,--no-undefined -ldl -fPIC -shared -Wl,--no-undefined -Wl,--version-script=target-libretro/link.T 
  ./sfc/memory/memory.hpp:50:8: warning: type ‘struct Bus’ violates the C++ One Definition Rule [-Wodr]
     50 | struct Bus {
        |        ^
  ./sfc/memory/memory.hpp:50:8: note: a different type is defined in another translation unit
     50 | struct Bus {
        |        ^
  ./sfc/memory/memory.hpp:80:35: note: the first difference of corresponding definitions is field ‘libretro_mem_map’
     80 |   vector<retro_memory_descriptor> libretro_mem_map;
        |                                   ^
  ./sfc/memory/memory.hpp:80:35: note: a field of same name but different type is defined in another translation unit
     80 |   vector<retro_memory_descriptor> libretro_mem_map;
        |                                   ^
  ./nall/vector.hpp:15:29: note: type name ‘nall::vector<SuperFamicom::retro_memory_descriptor>’ should match type name ‘nall::vector<retro_memory_descriptor>’
     15 | template<typename T> struct vector {
        |                             ^
  ./sfc/memory/memory.hpp:87:12: warning: ‘bus’ violates the C++ One Definition Rule [-Wodr]
     87 | extern Bus bus;
        |            ^
  ./sfc/memory/memory.hpp:50:8: note: type ‘struct Bus’ itself violates the C++ One Definition Rule
     50 | struct Bus {
        |        ^
  sfc/memory/memory.cpp:7:5: note: ‘bus’ was previously declared here
      7 | Bus bus;
        |     ^
  In member function ‘op_readpc’,
      inlined from ‘enter’ at sfc/chip/sa1/sa1.cpp:35:35,
      inlined from ‘Enter’ at sfc/chip/sa1/sa1.cpp:14:30:
  sfc/chip/sa1/memory/memory.cpp:116:7: error: inlining failed in call to ‘always_inline’ ‘op_read’: function not considered for inlining
    116 | uint8 SA1::op_read(unsigned addr) {
        |       ^
  ./processor/r65816/memory.hpp:2:17: note: called from here
      2 |   return op_read((regs.pc.b << 16) + regs.pc.w++);
        |                 ^

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libretro-bsnes-mercury/+bug/2015742/+subscriptions




More information about the foundations-bugs mailing list