Add libunwind.
authorwhitequark <whitequark@whitequark.org>
Sun, 26 Jul 2015 09:59:18 +0000 (12:59 +0300)
committerwhitequark <whitequark@whitequark.org>
Sun, 26 Jul 2015 09:59:18 +0000 (12:59 +0300)
.gitmodules
software/libunwind/Makefile [new file with mode: 0644]
software/libunwind/__cxxabi_config.h [new file with mode: 0644]
software/libunwind/strings.h [new file with mode: 0644]
software/unwinder [new submodule]

index 50d3533ab5ca03aaefece30af1d9c6ca2a345fb7..38ff0db826cc1de8c2d688800c2eccf688f07558 100644 (file)
@@ -10,3 +10,6 @@
 [submodule "extcores/litepcie_phy_wrappers"]
        path = extcores/litepcie_phy_wrappers
        url = https://github.com/enjoy-digital/litepcie_phy_wrappers
+[submodule "software/unwinder"]
+       path = software/unwinder
+       url = https://github.com/whitequark/libunwind
diff --git a/software/libunwind/Makefile b/software/libunwind/Makefile
new file mode 100644 (file)
index 0000000..f250db7
--- /dev/null
@@ -0,0 +1,30 @@
+MSCDIR=../..
+include $(MSCDIR)/software/common.mak
+
+COMMONFLAGS+=-integrated-as \
+       -I. -I$(MSCDIR)/software/include/dyld/ -I$(MSCDIR)/software/unwinder/include/ \
+       -D__ELF__ -D__linux__
+
+OBJECTS=UnwindRegistersSave.o UnwindRegistersRestore.o UnwindLevel1.o libunwind.o
+
+all: libunwind.a
+
+# pull in dependency info for *existing* .o files
+-include $(OBJECTS:.o=.d)
+
+libunwind.a: $(OBJECTS)
+       $(AR) crs libunwind.a $(OBJECTS)
+
+%.o: $(MSCDIR)/software/unwinder/src/%.cpp
+       $(compilexx-dep)
+
+%.o: $(MSCDIR)/software/unwinder/src/%.c
+       $(compile-dep)
+
+%.o: $(MSCDIR)/software/unwinder/src/%.S
+       $(assemble)
+
+.PHONY: clean
+
+clean:
+       $(RM) $(OBJECTS) $(OBJECTS:.o=.ts) $(OBJECTS:.o=.d) libuwind.a .*~ *~
diff --git a/software/libunwind/__cxxabi_config.h b/software/libunwind/__cxxabi_config.h
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/software/libunwind/strings.h b/software/libunwind/strings.h
new file mode 100644 (file)
index 0000000..18f596f
--- /dev/null
@@ -0,0 +1,2 @@
+// This is some obsolete BSD crap that libunwind pulls in
+// that's so old and useless it's not worth putting into libbase.
diff --git a/software/unwinder b/software/unwinder
new file mode 160000 (submodule)
index 0000000..7ce966d
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 7ce966d59aa6c5a8b962dca43a34279b69bec597