This patch adds support for a new option -mxbpf.  This tells GCC to
generate code for an expanded version of BPF that relaxes some of the
restrictions imposed by BPF.

(cherry pick of 51e10276d6792f67f1d88d90f299e7ac1b1f1f24)

2020-05-19  Jose E. Marchesi  <jose.march...@oracle.com>

gcc/
        * config/bpf/bpf.opt (mxbpf): New option.
        * doc/invoke.texi (Option Summary): Add -mxbpf.
        (eBPF Options): Document -mxbbpf.
---
 gcc/config/bpf/bpf.opt | 6 ++++++
 gcc/doc/invoke.texi    | 6 +++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/gcc/config/bpf/bpf.opt b/gcc/config/bpf/bpf.opt
index 78b93c55575..6aa858408f1 100644
--- a/gcc/config/bpf/bpf.opt
+++ b/gcc/config/bpf/bpf.opt
@@ -108,6 +108,12 @@ Enum(bpf_kernel) String(5.1) Value(LINUX_V5_1)
 EnumValue
 Enum(bpf_kernel) String(5.2) Value(LINUX_V5_2)
 
+; Use xBPF extensions.
+
+mxbpf
+Target Report Mask(XBPF)
+Generate xBPF.
+
 ; Selecting big endian or little endian targets.
 
 mbig-endian
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 4dc64ffe9dd..3cbf7640bbf 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -863,7 +863,7 @@ Objective-C and Objective-C++ Dialects}.
 
 @emph{eBPF Options}
 @gccoptlist{-mbig-endian -mlittle-endian -mkernel=@var{version}
--mframe-limit=@var{bytes}}
+-mframe-limit=@var{bytes} -mxbpf}
 
 @emph{FR30 Options}
 @gccoptlist{-msmall-model  -mno-lsim}
@@ -21045,6 +21045,10 @@ Generate code for a big-endian target.
 @item -mlittle-endian
 @opindex mlittle-endian
 Generate code for a little-endian target.  This is the default.
+
+@item -mxbpf
+Generate code for an expanded version of BPF, which relaxes some of
+the restrictions imposed by the BPF architecture.
 @end table
 
 @node FR30 Options
-- 
2.25.0.2.g232378479e

Reply via email to