Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build Error #19989

Open
5 of 6 tasks
archanox opened this issue Feb 16, 2025 · 2 comments
Open
5 of 6 tasks

Build Error #19989

archanox opened this issue Feb 16, 2025 · 2 comments

Comments

@archanox
Copy link
Contributor

Platform

Linux / BSD

Compiler and build tool versions

gcc version 14.2.0 (Debian 14.2.0-11revyos1) + cmake version 3.30.3

Operating system version

Debian GNU/Linux trixie/sid 5.10.113-lpi4a

Build commands used

./b.sh --gles

What happens

[ 96%] Linking CXX executable PPSSPPSDL
/usr/bin/ld: CMakeFiles/PPSSPPSDL.dir/UI/EmuScreen.cpp.o: in function `EmuScreen::OnResume(UI::EventParams&)':
EmuScreen.cpp:(.text+0x246): undefined reference to `Memory::MemFault_IgnoreLastCrash()'
/usr/bin/ld: CMakeFiles/PPSSPPSDL.dir/UI/EmuScreen.cpp.o: in function `EmuScreen::bootGame(Path const&)':
EmuScreen.cpp:(.text+0x53f0): undefined reference to `Memory::MemFault_MayBeResumable()'
/usr/bin/ld: CMakeFiles/PPSSPPSDL.dir/UI/GameSettingsScreen.cpp.o: in function `DeveloperToolsScreen::OnFramedumpTest(UI::EventParams&)':
GameSettingsScreen.cpp:(.text+0x93a): undefined reference to `mipsTracer'
/usr/bin/ld: GameSettingsScreen.cpp:(.text+0x944): undefined reference to `MIPSTracer::flush_to_file()'
/usr/bin/ld: CMakeFiles/PPSSPPSDL.dir/UI/GameSettingsScreen.cpp.o: in function `DeveloperToolsScreen::OnRemoteDebugger(UI::EventParams&)':
GameSettingsScreen.cpp:(.text+0x976): undefined reference to `mipsTracer'
/usr/bin/ld: GameSettingsScreen.cpp:(.text+0x97e): undefined reference to `MIPSTracer::clear()'
/usr/bin/ld: CMakeFiles/PPSSPPSDL.dir/UI/GameSettingsScreen.cpp.o: in function `DeveloperToolsScreen::OnMIPSTracerClearTracer(UI::EventParams&)':
GameSettingsScreen.cpp:(.text+0x9ca): undefined reference to `mipsTracer'
/usr/bin/ld: GameSettingsScreen.cpp:(.text+0x9dc): undefined reference to `MIPSTracer::initialize(unsigned int, unsigned int)'
/usr/bin/ld: GameSettingsScreen.cpp:(.text+0x9e2): undefined reference to `MIPSTracer::start_tracing()'
/usr/bin/ld: GameSettingsScreen.cpp:(.text+0x9f0): undefined reference to `mipsTracer'
/usr/bin/ld: GameSettingsScreen.cpp:(.text+0x9f8): undefined reference to `MIPSTracer::stop_tracing()'
/usr/bin/ld: CMakeFiles/PPSSPPSDL.dir/UI/GameSettingsScreen.cpp.o: in function `std::set<int, std::less<int>, std::allocator<int> >::insert(int const&) [clone .isra.0]':
GameSettingsScreen.cpp:(.text+0xe8a): undefined reference to `mipsTracer'
/usr/bin/ld: GameSettingsScreen.cpp:(.text+0xec2): undefined reference to `mipsTracer'
/usr/bin/ld: CMakeFiles/PPSSPPSDL.dir/UI/GameSettingsScreen.cpp.o: in function `std::_Function_handler<void (char const*, int), HostnameSelectScreen::OnEditClick(UI::EventParams&)::{lambda(std::
__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)#1}>::_M_invoke(std::_Any_data const&, char const*&&, int&&)':
GameSettingsScreen.cpp:(.text+0x2a7c): undefined reference to `mipsTracer'
/usr/bin/ld: CMakeFiles/PPSSPPSDL.dir/UI/GameSettingsScreen.cpp.o: in function `DeveloperToolsScreen::CreateViews()':
GameSettingsScreen.cpp:(.text+0x99ec): undefined reference to `mipsTracer'
/usr/bin/ld: lib/libCore.a(Core.cpp.o): in function `Core_Break(char const*, unsigned int)':
Core.cpp:(.text+0x38c): undefined reference to `mipsTracer'
/usr/bin/ld: Core.cpp:(.text+0x394): undefined reference to `MIPSTracer::stop_tracing()'
/usr/bin/ld: lib/libCore.a(Core.cpp.o): in function `Core_MemoryException(unsigned int, unsigned int, unsigned int, MemoryExceptionType)':
Core.cpp:(.text+0x1016): undefined reference to `WalkCurrentStack(int)'
/usr/bin/ld: Core.cpp:(.text+0x1022): undefined reference to `FormatStackTrace[abi:cxx11](std::vector<MIPSStackWalk::StackFrame, std::allocator<MIPSStackWalk::StackFrame> > const&)'
/usr/bin/ld: lib/libCore.a(Core.cpp.o): in function `Core_MemoryExceptionInfo(unsigned int, unsigned int, unsigned int, MemoryExceptionType, std::basic_string_view<char, std::char_traits<char> >
, bool)':
Core.cpp:(.text+0x12e2): undefined reference to `WalkCurrentStack(int)'
/usr/bin/ld: Core.cpp:(.text+0x12ee): undefined reference to `FormatStackTrace[abi:cxx11](std::vector<MIPSStackWalk::StackFrame, std::allocator<MIPSStackWalk::StackFrame> > const&)'
/usr/bin/ld: lib/libCore.a(MemMap.cpp.o): in function `Memory::Init()':
MemMap.cpp:(.text+0x472): undefined reference to `Memory::MemFault_Init()'/usr/bin/ld: lib/libCore.a(System.cpp.o): in function `CPU_Init(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, FileLoader*)':
System.cpp:(.text+0x19b6): undefined reference to `Memory::HandleFault(unsigned long, void*)'
/usr/bin/ld: lib/libCore.a(DisasmSubscriber.cpp.o): in function `WebSocketDisasmState::Assemble(DebuggerRequest&)':
DisasmSubscriber.cpp:(.text+0x7be): undefined reference to `MIPSAsm::MipsAssembleOpcode(char const*, DebugInterface*, unsigned int)'
/usr/bin/ld: DisasmSubscriber.cpp:(.text+0x84c): undefined reference to `MIPSAsm::GetAssembleError[abi:cxx11]()'/usr/bin/ld: lib/libCore.a(IRJit.cpp.o): in function `MIPSComp::IRBlockCache::FindPreloadBlock(unsigned int)':
IRJit.cpp:(.text+0x12e8): undefined reference to `mipsTracer'
/usr/bin/ld: lib/libCore.a(IRJit.cpp.o): in function `MIPSComp::IRJit::CompileBlock(unsigned int, std::vector<IRInst, std::allocator<IRInst> >&, unsigned int&, bool)':
IRJit.cpp:(.text+0x134e): undefined reference to `mipsTracer'
/usr/bin/ld: IRJit.cpp:(.text+0x1360): undefined reference to `MIPSTracer::prepare_block(MIPSComp::IRBlock const*, MIPSComp::IRBlockCache&)'
/usr/bin/ld: lib/libCore.a(IRFrontend.cpp.o): in function `MIPSComp::IRFrontend::IRFrontend(bool)':
IRFrontend.cpp:(.text+0xb56): undefined reference to `mipsTracer'
/usr/bin/ld: lib/libCore.a(IRFrontend.cpp.o): in function `MIPSComp::IRFrontend::DoJit(unsigned int, std::vector<IRInst, std::allocator<IRInst> >&, unsigned int&, bool)':
IRFrontend.cpp:(.text+0xc7a): undefined reference to `mipsTracer'
/usr/bin/ld: lib/libCore.a(IRInterpreter.cpp.o): in function `IRInterpret(MIPSState*, IRInst const*)':
IRInterpreter.cpp:(.text+0x1f2a): undefined reference to `mipsTracer'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/PPSSPPSDL.dir/build.make:817: PPSSPPSDL] Error 1
make[1]: *** [CMakeFiles/Makefile2:995: CMakeFiles/PPSSPPSDL.dir/all] Error 2
make: *** [Makefile:146: all] Error 2

PPSSPP version affected

v1.18.1-1101-g4ff642ccc8

Last working version

No response

Checklist

  • Test in the latest git build in case it's already fixed.
  • Make sure to run git submodule update --init --recursive before building.
  • Search for other reports of the same issue.
  • Try deleting the build directory and running the build again.
  • Check GitHub Actions, which builds every merge and PR.
  • Include logs and help us reproduce.
@hrydgard
Copy link
Owner

Well the build is obviously not this badly broken on our main targets, since it does build on Linux on CI.

Is this RISC-V or something? I can't tell from your report.

@archanox
Copy link
Contributor Author

Is this RISC-V or something? I can't tell from your report.

I suspect it's the code that the linker doesn't like. Mold fixed similar issues in the past for other software.

So I wouldn't chalk it up as a RISC-V issue, just that it was detected on said platform.

I'm not a C++ Dev so my uneducated guess is that there's something funky going on in the MIPS tracer code likely due to ignored code smells from the linter.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants