My grep result only found them in heaptrc unit, so you might want to try linking it.
Using heaptrc by -gh doesn't help. It's causing even more unresolved messaged:
Unit1.o : error LNK2001: unresolved external symbol INIT$_HEAPTRC
Unit1.o : error LNK2001: unresolved external symbol FINALIZE$_HEAPTRC
Unit1.o : error LNK2001: unresolved external symbol THREADVARLIST_HEAPTRC
system.o : error LNK2001: unresolved external symbol __data_start__
system.o : error LNK2001: unresolved external symbol __data_end__
64-bit I assume? These symbols are defined by the startup code of the binary. See rtl/linux/x86_64/*.as
Yes, 64-bit, but Windows not Linux. Those *.as files only seem to be in the linux folder, but not in the Windows folder. But even if, I don't know what to do with them. Also notice that they include "__data_start" and not "__data_start__".
I ran a content-search over all files in the lazarus folder and __data_start__ is included in:
rtl\inc: heaptrc.pp, wstrings.inc and wustring22.inc
rtl: heaptrc.o, heaptrc.ppu, system.o, system.ppu
and also in several *.exe files
However, I don't know what to do with this information. Can I include the wstrings.inc file for example somehow? Or extract the declaration? It should
somehow be possible to solve this whole mystery...