Recent

Author Topic: Cannot compile Lazarus. Linker fails.  (Read 507 times)

mm7

  • Full Member
  • ***
  • Posts: 222
  • PDP-11 RSX Pascal, Turbo Pascal, Delphi, Lazarus
Cannot compile Lazarus. Linker fails.
« on: April 07, 2025, 02:49:30 pm »
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][+][-]
  1. cd /usr/share/lazarus/3.8.0
  2. make OPT="-g -gl"
  3.  

But it fails on linking face with
Code: Text  [Select][+][-]
  1. make -C ide lazbuilder LCL_PLATFORM=nogui
  2. make[1]: Entering directory '/usr/share/lazarus/3.8.0/ide'
  3. make --assume-new=lazbuild.lpr lazbuild OPT='-Fu../packager/units/x86_64-linux -Fu../components/codetools/units/x86_64-linux -Fu../comp
  4. onents/debuggerintf/lib/x86_64-linux -Fu../components/lazutils/lib/x86_64-linux -Fu../components/freetype/lib/x86_64-linux -Fu../lcl/un
  5. its/x86_64-linux -Fu../lcl/units/x86_64-linux/nogui -Fu../components/buildintf/units/x86_64-linux -Fu../components/ideintf/units/x86_64
  6. -linux/nogui -Fu../components/synedit/units/x86_64-linux/nogui -Fu../components/lazcontrols/lib/x86_64-linux/nogui -Fu../components/laz
  7. controls/design/lib/x86_64-linux/nogui -Fu../components/lazdebuggers/lazdebuggerintf/lib/x86_64-linux -Fu../components/lazdebuggers/cmd
  8. linedebuggerbase/lib/x86_64-linux/nogui -Fu../components/lazdebuggergdbmi/units/x86_64-linux/nogui -Fu../components/lclextensions/lib/x
  9. 86_64-linux-nogui -Fu../components/virtualtreeview/lib/x86_64-linux-nogui -Fu../components/fpdebug/lib/x86_64-linux -Fu../components/la
  10. zdebuggers/lazdebuggerfp/lib/x86_64-linux/nogui -Fu../components/lazdebuggers/lazdebuggerlldb/lib/x86_64-linux/nogui -Fu../components/l
  11. azdebuggers/lazdebuggerfplldb/lib/x86_64-linux/nogui -Fupackages/ideconfig/lib/x86_64-linux/nogui -Fupackages/idedebugger/lib/x86_64-li
  12. nux/nogui  '
  13. make[2]: Entering directory '/usr/share/lazarus/3.8.0/ide'
  14. /usr/lib/fpc/3.2.2/ppcx64 -gl -vbqewnhi -Sci -dlclnogui -Fu../designer -Fu../debugger -Fu../debugger/frames -Fu../converter -Fu../packa
  15. ger -Fu../packager/frames -Fu../components/custom -Fuframes -Fu. -Fu/usr/lib/fpc/3.2.2/units/x86_64-linux/rtl -Fiinclude -Fiinclude/lin
  16. ux -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../co
  17. mponents/codetools/units/x86_64-linux -Fu../components/debuggerintf/lib/x86_64-linux -Fu../components/lazutils/lib/x86_64-linux -Fu../c
  18. omponents/freetype/lib/x86_64-linux -Fu../lcl/units/x86_64-linux -Fu../lcl/units/x86_64-linux/nogui -Fu../components/buildintf/units/x8
  19. 6_64-linux -Fu../components/ideintf/units/x86_64-linux/nogui -Fu../components/synedit/units/x86_64-linux/nogui -Fu../components/lazcont
  20. rols/lib/x86_64-linux/nogui -Fu../components/lazcontrols/design/lib/x86_64-linux/nogui -Fu../components/lazdebuggers/lazdebuggerintf/li
  21. b/x86_64-linux -Fu../components/lazdebuggers/cmdlinedebuggerbase/lib/x86_64-linux/nogui -Fu../components/lazdebuggergdbmi/units/x86_64-
  22. linux/nogui -Fu../components/lclextensions/lib/x86_64-linux-nogui -Fu../components/virtualtreeview/lib/x86_64-linux-nogui -Fu../compone
  23. nts/fpdebug/lib/x86_64-linux -Fu../components/lazdebuggers/lazdebuggerfp/lib/x86_64-linux/nogui -Fu../components/lazdebuggers/lazdebugg
  24. erlldb/lib/x86_64-linux/nogui -Fu../components/lazdebuggers/lazdebuggerfplldb/lib/x86_64-linux/nogui -Fupackages/ideconfig/lib/x86_64-l
  25. inux/nogui -Fupackages/idedebugger/lib/x86_64-linux/nogui -dx86_64 lazbuild.lpr
  26. Hint: (11030) Start of reading config file /etc/fpc.cfg
  27. Hint: (11031) End of reading config file /etc/fpc.cfg
  28. Free Pascal Compiler version 3.2.2 [2025/04/05] for x86_64
  29. Copyright (c) 1993-2021 by Florian Klaempfl and others
  30. (1002) Target OS: Linux for x86-64
  31. (3104) Compiling lazbuild.lpr
  32. /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)"
  33. /usr/share/lazarus/3.8.0/ide/lazbuild.lpr(89,48) Hint: (5024) Parameter "Filename" not used
  34. /usr/share/lazarus/3.8.0/ide/lazbuild.lpr(86,43) Hint: (5024) Parameter "Code" not used
  35. /usr/share/lazarus/3.8.0/ide/lazbuild.lpr(87,21) Hint: (5024) Parameter "Filename" not used
  36. /usr/share/lazarus/3.8.0/ide/lazbuild.lpr(106,31) Hint: (5024) Parameter "DlgType" not used
  37. /usr/share/lazarus/3.8.0/ide/lazbuild.lpr(106,58) Hint: (5024) Parameter "Buttons" not used
  38. /usr/share/lazarus/3.8.0/ide/lazbuild.lpr(107,37) Hint: (5024) Parameter "HelpKeyword" not used
  39. /usr/share/lazarus/3.8.0/ide/lazbuild.lpr(109,31) Hint: (5024) Parameter "DlgType" not used
  40. /usr/share/lazarus/3.8.0/ide/lazbuild.lpr(109,58) Hint: (5024) Parameter "Buttons" not used
  41. /usr/share/lazarus/3.8.0/ide/lazbuild.lpr(110,37) Hint: (5024) Parameter "HelpKeyword" not used
  42. /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
  43. /usr/share/lazarus/3.8.0/ide/lazbuild.lpr(1828,5) Warning: (5066) Symbol "GetCompiledTargetOS" is deprecated: "use FPCAdds"
  44. /usr/share/lazarus/3.8.0/ide/lazbuild.lpr(1839,5) Warning: (5066) Symbol "GetCompiledTargetCPU" is deprecated: "use FPCAdds"
  45. (9022) Compiling resource ../units/x86_64-linux/nogui/lazbuild.or
  46. (9015) Linking ../lazbuild
  47. /usr/bin/ld: /usr/share/lazarus/3.8.0/lcl/units/x86_64-linux/intfgraphics.o: in function `.La16':
  48. intfgraphics.pas:(.debug_info+0x8961): undefined reference to `DBG2_$SYSTEM_$$_IUNKNOWN'
  49. /usr/bin/ld: /usr/share/lazarus/3.8.0/lcl/units/x86_64-linux/intfgraphics.o: in function `.La18':
  50. intfgraphics.pas:(.debug_info+0x89f0): undefined reference to `DBG2_$SYSTEM_$$_IUNKNOWN'
  51. /usr/bin/ld: /usr/share/lazarus/3.8.0/lcl/units/x86_64-linux/graphics.o: in function `.La151':
  52. graphics.pp:(.debug_info+0x1dc5a): undefined reference to `DBG2_$SYSTEM_$$_IUNKNOWN'
  53. /usr/bin/ld: /usr/share/lazarus/3.8.0/lcl/units/x86_64-linux/graphics.o: in function `.La152':
  54. graphics.pp:(.debug_info+0x1dd1b): undefined reference to `DBG2_$SYSTEM_$$_IUNKNOWN'
  55. /usr/bin/ld: /usr/share/lazarus/3.8.0/lcl/units/x86_64-linux/imagelistcache.o: in function `.La1':
  56. imagelistcache.pas:(.debug_info+0x170): undefined reference to `DBG2_$SYSTEM_$$_IUNKNOWN'
  57. /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
  58. /usr/share/lazarus/3.8.0/ide/lazbuild.lpr(1883,1) Error: (9013) Error while linking
  59. /usr/share/lazarus/3.8.0/ide/lazbuild.lpr(1883,1) Fatal: (10026) There were 1 errors compiling module, stopping
  60. Fatal: (1018) Compilation aborted
  61.  

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.

« Last Edit: April 07, 2025, 03:05:40 pm by mm7 »

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 12262
  • FPC developer.
Re: Cannot compile Lazarus. Linker fails.
« Reply #1 on: April 07, 2025, 03:58:32 pm »
FPC units may have been precompiled with some settings ?  The build in the lazarus dir only builds lazarus.

mm7

  • Full Member
  • ***
  • Posts: 222
  • PDP-11 RSX Pascal, Turbo Pascal, Delphi, Lazarus
Re: Cannot compile Lazarus. Linker fails.
« Reply #2 on: April 07, 2025, 06:01:54 pm »
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

  • Full Member
  • ***
  • Posts: 222
  • PDP-11 RSX Pascal, Turbo Pascal, Delphi, Lazarus
Re: Cannot compile Lazarus. Linker fails.
« Reply #3 on: April 08, 2025, 01:04:28 am »
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.

 

TinyPortal © 2005-2018