aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/ChangeLog7
-rw-r--r--libgcc/config.host7
-rw-r--r--libgcc/config/bpf/crti.S0
-rw-r--r--libgcc/config/bpf/crtn.S0
-rw-r--r--libgcc/config/bpf/t-bpf23
5 files changed, 37 insertions, 0 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index df5d996..fdbc009 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
+
+ * config.host: Set cpu_type for bpf-*-* targets.
+ * config/bpf/t-bpf: Likewise.
+ * config/bpf/crtn.S: Likewise.
+ * config/bpf/crti.S: New file.
+
2019-09-06 Jim Wilson <jimw@sifive.com>
* config.host (riscv*-*-linux*): Add t-slibgcc-libgcc to tmake_file.
diff --git a/libgcc/config.host b/libgcc/config.host
index 1db5287..b5826fe 100644
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -107,6 +107,9 @@ avr-*-*)
bfin*-*)
cpu_type=bfin
;;
+bpf-*-*)
+ cpu_type=bpf
+ ;;
cr16-*-*)
;;
crisv32-*-*)
@@ -523,6 +526,10 @@ bfin*-*)
tmake_file="$tmake_file bfin/t-bfin t-fdpbit"
extra_parts="crtbegin.o crtend.o crti.o crtn.o"
;;
+bpf-*-*)
+ tmake_file="$tmake_file ${cpu_type}/t-${cpu_type}"
+ extra_parts="crti.o crtn.o"
+ ;;
cr16-*-elf)
tmake_file="${tmake_file} cr16/t-cr16 cr16/t-crtlibid t-fdpbit"
extra_parts="$extra_parts crti.o crtn.o crtlibid.o"
diff --git a/libgcc/config/bpf/crti.S b/libgcc/config/bpf/crti.S
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libgcc/config/bpf/crti.S
diff --git a/libgcc/config/bpf/crtn.S b/libgcc/config/bpf/crtn.S
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libgcc/config/bpf/crtn.S
diff --git a/libgcc/config/bpf/t-bpf b/libgcc/config/bpf/t-bpf
new file mode 100644
index 0000000..88129a7
--- /dev/null
+++ b/libgcc/config/bpf/t-bpf
@@ -0,0 +1,23 @@
+LIB2ADDEH =
+
+crti.o: $(srcdir)/config/bpf/crti.S
+ $(crt_compile) $(CRTSTUFF_T_CFLAGS) -c $<
+
+crtn.o: $(srcdir)/config/bpf/crtn.S
+ $(crt_compile) $(CRTSTUFF_T_CFLAGS) -c $<
+
+# Some of the functions defined in libgcc2 exceed the eBPF stack
+# limit, or other restrictions imposed by this peculiar target.
+# Therefore we have to exclude them here.
+#
+# Patterns in bpf.md must guarantee that no calls to the excluded
+# functions are ever generated, and compiler tests should make sure
+# this holds.
+#
+# Note that the modes in the function names below are misleading: di
+# means TImode.
+LIB2FUNCS_EXCLUDE = _mulvdi3 _divdi3 _moddi3 _divmoddi4 _udivdi3 _umoddi3 \
+ _udivmoddi4
+
+# Prevent building "advanced" stuff (for example, gcov support).
+INHIBIT_LIBC_CFLAGS = -Dinhibit_libc