Cannot compile Lazarus. Linker fails. lazarus / 1-Linux ---------------------------------------------------------------------- mm7 · 2025-04-07 12:49 I recompiled FPC with debug option OPT="-gl". After that Lazarus stopped compile with error "checksum differ". I need to rebuild Lazarus now. I call Code: Bash  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i cd /usr/share/lazarus/3.8.0make OPT="-g -gl"  But it fails on linking face with Code: Text  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i make -C ide lazbuilder LCL_PLATFORM=noguimake[1]: Entering directory '/usr/share/lazarus/3.8.0/ide'make --assume-new=lazbuild.lpr lazbuild OPT='-Fu../packager/units/x86_64-linux -Fu../components/codetools/units/x86_64-linux -Fu../components/debuggerintf/lib/x86_64-linux -Fu../components/lazutils/lib/x86_64-linux -Fu../components/freetype/lib/x86_64-linux -Fu../lcl/units/x86_64-linux -Fu../lcl/units/x86_64-linux/nogui -Fu../components/buildintf/units/x86_64-linux -Fu../components/ideintf/units/x86_64-linux/nogui -Fu../components/synedit/units/x86_64-linux/nogui -Fu../components/lazcontrols/lib/x86_64-linux/nogui -Fu../components/lazcontrols/design/lib/x86_64-linux/nogui -Fu../components/lazdebuggers/lazdebuggerintf/lib/x86_64-linux -Fu../c omponents/lazdebuggers/cmdlinedebuggerbase/lib/x86_64-linux/nogui -Fu../components/lazdebuggergdbmi/units/x86_64-linux/nogui -Fu../components/lclextensions/lib/x86_64-linux-nogui -Fu../components/virtualtreeview/lib/x86_64-linux-nogui -Fu../components/fpdebug/lib/x86_64-linux -Fu../components/lazdebuggers/lazdebuggerfp/lib/x86_64-linux/nogui -Fu../components/lazdebuggers/lazdebuggerlldb/lib/x86_64-linux/nogui -Fu../components/lazdebuggers/lazdebuggerfplldb/lib/x86_64-linux/nogui -Fupackages/ideconfig/lib/x86_64-linux/nogui -Fupackages/idedebugger/lib/x86_64-linux/nogui  'make[2]: Entering directory '/usr/share/lazarus/3.8.0/ide'/usr/lib/fpc/3.2.2/ppcx64 -gl -vbqewnhi -Sci -dlclnogui -Fu../designer -Fu../debugger -Fu../debugger/frames -Fu../converter -Fu../packager -Fu../packager/frames -Fu../components/custom -Fuframes -Fu. -Fu/usr/lib/fpc/3.2.2/units/x86_64-linux/rtl -Fiinclude -Fiinclude/linux -Fi../images -FE.. -FU../units/x86_64-linux/nogui -Cg -Fl/usr/lib/gcc/x86_64-linux-gnu/11 -Fu../packager/units/x86_64-linux -Fu../components/codetools/units/x86_64-linux -Fu../components/debuggerintf/lib/x86_64-linux -Fu../components/lazutils/lib/x86_64-linux -Fu../components/freetype/lib/x86_64-linux -Fu../lcl/units/x86_64-linux -Fu../lcl/units/x86_64-linux/nogui -Fu../components/buildintf/units/x86_64-linux -Fu../components/ideintf/units/x86_64-linux/nogui -Fu../components/synedit/units/x86_64-linux/nogui -Fu../components/lazcontrols/lib/x86_64-linux/nogui -Fu../components/lazcontrols/design/lib/x86_64-linux/nogui -Fu../components/lazdebuggers/lazdebuggerintf/lib/x86_64-linux -Fu../c omponents/lazdebuggers/cmdlinedebuggerbase/lib/x86_64-linux/nogui -Fu../components/lazdebuggergdbmi/units/x86_64-linux/nogui -Fu../components/lclextensions/lib/x86_64-linux-nogui -Fu../components/virtualtreeview/lib/x86_64-linux-nogui -Fu../components/fpdebug/lib/x86_64-linux -Fu../components/lazdebuggers/lazdebuggerfp/lib/x86_64-linux/nogui -Fu../components/lazdebuggers/lazdebuggerlldb/lib/x86_64-linux/nogui -Fu../components/lazdebuggers/lazdebuggerfplldb/lib/x86_64-linux/nogui -Fupackages/ideconfig/lib/x86_64-linux/nogui -Fupackages/idedebugger/lib/x86_64-linux/nogui -dx86_64 lazbuild.lprHint: (11030) Start of reading config file /etc/fpc.cfgHint: (11031) End of reading config file /etc/fpc.cfgFree Pascal Compiler version 3.2.2 [2025/04/05] for x86_64Copyright (c) 1993-2021 by Florian Klaempfl and others(1002) Target OS: Linux for x86-64(3104) Compiling lazbuild.lpr/usr/share/lazarus/3.8.0/ide/lazbuild.lpr(35,25) Warning: (5075) Unit "UITypes" is deprecated: "Use System.UITypes instead (available since FPC 3.2.0)"/usr/share/lazarus/3.8.0/ide/lazbuild.lpr(89,48) Hint: (5024) Parameter "Filename" not used/usr/share/lazarus/3.8.0/ide/lazbuild.lpr(86,43) Hint: (5024) Parameter "Code" not used/usr/share/lazarus/3.8.0/ide/lazbuild.lpr(87,21) Hint: (5024) Parameter "Filename" not used/usr/share/lazarus/3.8.0/ide/lazbuild.lpr(106,31) Hint: (5024) Parameter "DlgType" not used/usr/share/lazarus/3.8.0/ide/lazbuild.lpr(106,58) Hint: (5024) Parameter "Buttons" not used/usr/share/lazarus/3.8.0/ide/lazbuild.lpr(107,37) Hint: (5024) Parameter "HelpKeyword" not used/usr/share/lazarus/3.8.0/ide/lazbuild.lpr(109,31) Hint: (5024) Parameter "DlgType" not used/usr/share/lazarus/3.8.0/ide/lazbuild.lpr(109,58) Hint: (5024) Parameter "Buttons" not used/usr/share/lazarus/3.8.0/ide/lazbuild.lpr(110,37) Hint: (5024) Parameter "HelpKeyword" not used/usr/share/lazarus/3.8.0/ide/lazbuild.lpr(631,97) Hint: (5091) Local variable "InheritedOptionStrings" of a managed type does not seem to be initialized/usr/share/lazarus/3.8.0/ide/lazbuild.lpr(1828,5) Warning: (5066) Symbol "GetCompiledTargetOS" is deprecated: "use FPCAdds"/usr/share/lazarus/3.8.0/ide/lazbuild.lpr(1839,5) Warning: (5066) Symbol "GetCompiledTargetCPU" is deprecated: "use FPCAdds"(9022) Compiling resource ../units/x86_64-linux/nogui/lazbuild.or(9015) Linking ../lazbuild/usr/bin/ld: /usr/share/lazarus/3.8.0/lcl/units/x86_64-linux/intfgraphics.o: in function `.La16':intfgraphics.pas:(.debug_info+0x8961): undefined reference to `DBG2_$SYSTEM_$$_IUNKNOWN'/usr/bin/ld: /usr/share/lazarus/3.8.0/lcl/units/x86_64-linux/intfgraphics.o: in function `.La18':intfgraphics.pas:(.debug_info+0x89f0): undefined reference to `DBG2_$SYSTEM_$$_IUNKNOWN'/usr/bin/ld: /usr/share/lazarus/3.8.0/lcl/units/x86_64-linux/graphics.o: in function `.La151':graphics.pp:(.debug_info+0x1dc5a): undefined reference to `DBG2_$SYSTEM_$$_IUNKNOWN'/usr/bin/ld: /usr/share/lazarus/3.8.0/lcl/units/x86_64-linux/graphics.o: in function `.La152':graphics.pp:(.debug_info+0x1dd1b): undefined reference to `DBG2_$SYSTEM_$$_IUNKNOWN'/usr/bin/ld: /usr/share/lazarus/3.8.0/lcl/units/x86_64-linux/imagelistcache.o: in function `.La1':imagelistcache.pas:(.debug_info+0x170): undefined reference to `DBG2_$SYSTEM_$$_IUNKNOWN'/usr/bin/ld: /usr/share/lazarus /3.8.0/components/ideintf/units/x86_64- linux/nogui/idehelpintf.o:idehelpintf.pas:(.debug_info+0xc48): more undefined references to `DBG2_$SYSTEM_$$_IUNKNOWN' follow/usr/share/lazarus/3.8.0/ide/lazbuild.lpr(1883,1) Error: (9013) Error while linking/usr/share/lazarus/3.8.0/ide/lazbuild.lpr(1883,1) Fatal: (10026) There were 1 errors compiling module, stoppingFatal: (1018) Compilation aborted  Why it generates DBG2_$SYSTEM_$$_IUNKNOWN symbol? And other DBG2? When I compiled FPC with OPT="-gl" it did not generate any DBG2_$SYSTEM_$$_IUNKNOWN. Is it DWARF2 specified somewhere by default? I checked /etc/fpc.cfg all debug options are commented there. ---------------------------------------------------------------------- marcov · 2025-04-07 13:58 FPC units may have been precompiled with some settings ?  The build in the lazarus dir only builds lazarus. ---------------------------------------------------------------------- mm7 · 2025-04-07 16:01 FPC units have been built into new empty location with OPT="-gl". > The build in the lazarus dir only builds lazarus. I know, but it refers to some FPC units like System. My understanding the linker expects the symbol DBG2_$SYSTEM_$$_IUNKNOWN symbol should be defined in rtl/system.o There is DBG_$SYSTEM_$$_IUNKNOWN and couple of DBG2 symbols like DBG2_$SYSTEM_$$_TOBJECT But there is no DBG2_$SYSTEM_$$_IUNKNOWN. That is why ld is not happy. Should I recompile FPC with some more debugging options? ---------------------------------------------------------------------- mm7 · 2025-04-07 23:04 I've cleaned up all compiled binaries (make clean; make distclean) for Lazarus and rebuilt with( make bigide OPT="-gl -gw3 -O-" ) This helped. Then removed ~/.lazarus/lib and recompiled from IDE  again with options "-gl -gw3 -O-" and target ~/.lazarus/ Now I can build projects and debug deep into LCL and RTL.