summaryrefslogtreecommitdiff
path: root/rtl/darwin
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-04-08 19:50:34 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-04-08 19:50:34 +0000
commitae7da1201ebe80081e46c72754c5661dc707c08f (patch)
treed52d0d3204cda851d2fb8cc63348f9c6da4c2e0c /rtl/darwin
parent0c7ce873f2c71726b81a6c6c224eec358cf202e4 (diff)
downloadfpc-ae7da1201ebe80081e46c72754c5661dc707c08f.tar.gz
* Darwin support for printing line info for backtraces when using Dwarf,
based on patches by Colin Western, mantis #38483) o requires that the program/library is compiled with -Xg (or that dsymutil is run on it after compiling), and that the .dSYM bundle is in the same directory as the program/library o always use the "dl" unit in exeinfo for Darwin, as that's needed for dynamic library support, and this does not cause an extra dependency since on Darwin we always use libc o cleaned up the exeinfo unit for Darwin, and sped it up by using mmap instead of small reads o fixed unit dependencies for exeinfo, lineinfo and lnfodwarf in Darwin RTL Makefile * use the process address info from the original exe even when reading the debug information from an external file - removed outdated ifdef'd darwin code from dl.pp (no longer needed now that processaddress gets set correctly in exeinfo for that platform) git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49140 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'rtl/darwin')
-rw-r--r--rtl/darwin/Makefile.fpc7
1 files changed, 5 insertions, 2 deletions
diff --git a/rtl/darwin/Makefile.fpc b/rtl/darwin/Makefile.fpc
index 4af975b91f..1a0e19d6a3 100644
--- a/rtl/darwin/Makefile.fpc
+++ b/rtl/darwin/Makefile.fpc
@@ -268,10 +268,13 @@ getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) -Sg $(INC)/heaptrc.pp
-lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMUNIT)$(PPUEXT) strings$(PPUEXT) $(INC)/exeinfo.pp sysutils$(PPUEXT)
+exeinfo$(PPUEXT) : $(INC)/exeinfo.pp $(SYSTEMUNIT)$(PPUEXT) strings$(PPUEXT) ctypes$(PPUEXT) dl$(PPUEXT) baseunix$(PPUEXT)
$(COMPILER) $<
-lnfodwrf$(PPUEXT) : $(INC)/lnfodwrf.pp $(SYSTEMUNIT)$(PPUEXT) strings$(PPUEXT) $(INC)/exeinfo.pp lineinfo$(PPUEXT) sysutils$(PPUEXT)
+lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMUNIT)$(PPUEXT) strings$(PPUEXT) exeinfo$(PPUEXT) sysutils$(PPUEXT)
+ $(COMPILER) $<
+
+lnfodwrf$(PPUEXT) : $(INC)/lnfodwrf.pp $(SYSTEMUNIT)$(PPUEXT) strings$(PPUEXT) exeinfo$(PPUEXT) lineinfo$(PPUEXT) sysutils$(PPUEXT) baseunix$(PPUEXT) ctypes$(PPUEXT)
$(COMPILER) $<
lnfogdb$(PPUEXT) : $(UNIXINC)/lnfogdb.pp $(SYSTEMUNIT)$(PPUEXT) ctypes$(PPUEXT) baseunix$(PPUEXT) unix$(PPUEXT)