@ -12,6 +12,7 @@ extern bool entrypoint(const uint8_t *input) {
|
|||||||
SolClusterInfo info;
|
SolClusterInfo info;
|
||||||
|
|
||||||
sol_log(__FILE__);
|
sol_log(__FILE__);
|
||||||
|
|
||||||
if (!sol_deserialize(input, ka, SOL_ARRAY_SIZE(ka), &ka_len, &data, &data_len, &info)) {
|
if (!sol_deserialize(input, ka, SOL_ARRAY_SIZE(ka), &ka_len, &data, &data_len, &info)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -16,5 +16,4 @@ SECTIONS
|
|||||||
.gnu.hash : { *(.gnu.hash) } :dynamic
|
.gnu.hash : { *(.gnu.hash) } :dynamic
|
||||||
.rel.dyn : { *(.rel.dyn) } :dynamic
|
.rel.dyn : { *(.rel.dyn) } :dynamic
|
||||||
.hash : { *(.hash) } :dynamic
|
.hash : { *(.hash) } :dynamic
|
||||||
|
}
|
||||||
}
|
|
||||||
|
@ -60,6 +60,10 @@ BPF_CXX_FLAGS := \
|
|||||||
-emit-llvm \
|
-emit-llvm \
|
||||||
-target bpf \
|
-target bpf \
|
||||||
-fPIC \
|
-fPIC \
|
||||||
|
-fomit-frame-pointer \
|
||||||
|
-fno-exceptions \
|
||||||
|
-fno-asynchronous-unwind-tables \
|
||||||
|
-fno-unwind-tables \
|
||||||
|
|
||||||
BPF_LLC_FLAGS := \
|
BPF_LLC_FLAGS := \
|
||||||
-march=bpf \
|
-march=bpf \
|
||||||
|
@ -299,12 +299,7 @@ fn test_program_builtin_bpf_noop() {
|
|||||||
fn test_program_bpf_c() {
|
fn test_program_bpf_c() {
|
||||||
logger::setup();
|
logger::setup();
|
||||||
|
|
||||||
let programs = [
|
let programs = ["noop", "struct_pass", "struct_ret", "noop++"];
|
||||||
"noop",
|
|
||||||
"struct_pass",
|
|
||||||
"struct_ret",
|
|
||||||
//"noop++" // TODO fails with buffer overflow
|
|
||||||
];
|
|
||||||
for program in programs.iter() {
|
for program in programs.iter() {
|
||||||
println!("Test program: {:?}", program);
|
println!("Test program: {:?}", program);
|
||||||
let mut file = File::open(create_bpf_path(program)).expect("file open failed");
|
let mut file = File::open(create_bpf_path(program)).expect("file open failed");
|
||||||
|
Reference in New Issue
Block a user