Add support for riscv64-unknown-linux-gnu

pull/274/head
gianluigi 3 years ago
parent 41a27e3784
commit 21a853199b

File diff suppressed because it is too large Load Diff

@ -13,6 +13,8 @@ mod linux_bindings_aarch64;
mod linux_bindings_armv7; mod linux_bindings_armv7;
#[cfg(target_arch = "x86_64")] #[cfg(target_arch = "x86_64")]
mod linux_bindings_x86_64; mod linux_bindings_x86_64;
#[cfg(target_arch = "riscv64")]
mod linux_bindings_riscv64;
pub use btf_internal_bindings::*; pub use btf_internal_bindings::*;
@ -24,3 +26,6 @@ pub use linux_bindings_armv7::*;
#[cfg(target_arch = "aarch64")] #[cfg(target_arch = "aarch64")]
pub use linux_bindings_aarch64::*; pub use linux_bindings_aarch64::*;
#[cfg(target_arch = "riscv64")]
pub use linux_bindings_riscv64::*;

@ -10,6 +10,9 @@ mod armv7;
#[cfg(bpf_target_arch = "aarch64")] #[cfg(bpf_target_arch = "aarch64")]
mod aarch64; mod aarch64;
#[cfg(bpf_target_arch = "riscv64")]
mod riscv64;
mod gen { mod gen {
#[cfg(bpf_target_arch = "x86_64")] #[cfg(bpf_target_arch = "x86_64")]
pub use super::x86_64::*; pub use super::x86_64::*;
@ -19,6 +22,9 @@ mod gen {
#[cfg(bpf_target_arch = "aarch64")] #[cfg(bpf_target_arch = "aarch64")]
pub use super::aarch64::*; pub use super::aarch64::*;
#[cfg(bpf_target_arch = "riscv64")]
pub use super::riscv64::*;
} }
pub use gen::{getters, helpers}; pub use gen::{getters, helpers};

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -0,0 +1,4 @@
#![allow(clippy::all, dead_code)]
pub mod bindings;
pub mod getters;
pub mod helpers;

@ -171,6 +171,7 @@ fn codegen_bindings(opts: &Options) -> Result<(), anyhow::Error> {
Architecture::X86_64 => "x86_64-unknown-linux-gnu", Architecture::X86_64 => "x86_64-unknown-linux-gnu",
Architecture::ARMv7 => "armv7-unknown-linux-gnu", Architecture::ARMv7 => "armv7-unknown-linux-gnu",
Architecture::AArch64 => "aarch64-unknown-linux-gnu", Architecture::AArch64 => "aarch64-unknown-linux-gnu",
Architecture::RISCV64 => "riscv64-unknown-linux-gnu",
}; };
bindgen = bindgen.clang_args(&["-target", target]); bindgen = bindgen.clang_args(&["-target", target]);
@ -180,6 +181,7 @@ fn codegen_bindings(opts: &Options) -> Result<(), anyhow::Error> {
Architecture::X86_64 => &opts.x86_64_sysroot, Architecture::X86_64 => &opts.x86_64_sysroot,
Architecture::ARMv7 => &opts.armv7_sysroot, Architecture::ARMv7 => &opts.armv7_sysroot,
Architecture::AArch64 => &opts.aarch64_sysroot, Architecture::AArch64 => &opts.aarch64_sysroot,
Architecture::RISCV64 => &opts.riscv64_sysroot,
}; };
bindgen = bindgen.clang_args(&["-I", &*sysroot.to_string_lossy()]); bindgen = bindgen.clang_args(&["-I", &*sysroot.to_string_lossy()]);

@ -79,6 +79,7 @@ pub fn codegen(opts: &Options) -> Result<(), anyhow::Error> {
Architecture::X86_64 => "x86_64-unknown-linux-gnu", Architecture::X86_64 => "x86_64-unknown-linux-gnu",
Architecture::ARMv7 => "armv7-unknown-linux-gnu", Architecture::ARMv7 => "armv7-unknown-linux-gnu",
Architecture::AArch64 => "aarch64-unknown-linux-gnu", Architecture::AArch64 => "aarch64-unknown-linux-gnu",
Architecture::RISCV64 => "riscv64-unknown-linux-gnu",
}; };
bindgen = bindgen.clang_args(&["-target", target]); bindgen = bindgen.clang_args(&["-target", target]);
@ -88,6 +89,7 @@ pub fn codegen(opts: &Options) -> Result<(), anyhow::Error> {
Architecture::X86_64 => &opts.x86_64_sysroot, Architecture::X86_64 => &opts.x86_64_sysroot,
Architecture::ARMv7 => &opts.armv7_sysroot, Architecture::ARMv7 => &opts.armv7_sysroot,
Architecture::AArch64 => &opts.aarch64_sysroot, Architecture::AArch64 => &opts.aarch64_sysroot,
Architecture::RISCV64 => &opts.riscv64_sysroot,
}; };
bindgen = bindgen.clang_args(&["-I", &*sysroot.to_string_lossy()]); bindgen = bindgen.clang_args(&["-I", &*sysroot.to_string_lossy()]);

@ -10,6 +10,7 @@ const SUPPORTED_ARCHS: &[Architecture] = &[
Architecture::X86_64, Architecture::X86_64,
Architecture::ARMv7, Architecture::ARMv7,
Architecture::AArch64, Architecture::AArch64,
Architecture::RISCV64,
]; ];
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
@ -17,6 +18,7 @@ pub enum Architecture {
X86_64, X86_64,
ARMv7, ARMv7,
AArch64, AArch64,
RISCV64,
} }
impl Architecture { impl Architecture {
@ -33,6 +35,7 @@ impl std::str::FromStr for Architecture {
"x86_64" => Architecture::X86_64, "x86_64" => Architecture::X86_64,
"armv7" => Architecture::ARMv7, "armv7" => Architecture::ARMv7,
"aarch64" => Architecture::AArch64, "aarch64" => Architecture::AArch64,
"riscv64" => Architecture::RISCV64,
_ => return Err("invalid architecture".to_owned()), _ => return Err("invalid architecture".to_owned()),
}) })
} }
@ -44,6 +47,7 @@ impl std::fmt::Display for Architecture {
Architecture::X86_64 => "x86_64", Architecture::X86_64 => "x86_64",
Architecture::ARMv7 => "armv7", Architecture::ARMv7 => "armv7",
Architecture::AArch64 => "aarch64", Architecture::AArch64 => "aarch64",
Architecture::RISCV64 => "riscv64",
}) })
} }
} }
@ -64,6 +68,9 @@ pub struct Options {
#[structopt(long, default_value = "/usr/arm-linux-gnueabi/include")] #[structopt(long, default_value = "/usr/arm-linux-gnueabi/include")]
armv7_sysroot: PathBuf, armv7_sysroot: PathBuf,
#[structopt(long, default_value = "/usr/riscv64-linux-gnu/include")]
riscv64_sysroot: PathBuf,
#[structopt(subcommand)] #[structopt(subcommand)]
command: Option<Command>, command: Option<Command>,
} }

Loading…
Cancel
Save