From 935524f20c5727de8c61a48e0f1b24a24867c4a8 Mon Sep 17 00:00:00 2001 From: jackcmay Date: Tue, 11 Dec 2018 12:14:41 -0800 Subject: [PATCH] Fix eh frame relocation (#2109) * Exclude .eh_frame --- programs/bpf/c/src/noop++.cc | 1 + sdk/bpf/bpf.ld | 3 +-- sdk/bpf/bpf.mk | 4 ++++ tests/programs.rs | 7 +------ 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/programs/bpf/c/src/noop++.cc b/programs/bpf/c/src/noop++.cc index 0abc44e7a8..fc6b8538a2 100644 --- a/programs/bpf/c/src/noop++.cc +++ b/programs/bpf/c/src/noop++.cc @@ -12,6 +12,7 @@ extern bool entrypoint(const uint8_t *input) { SolClusterInfo info; sol_log(__FILE__); + if (!sol_deserialize(input, ka, SOL_ARRAY_SIZE(ka), &ka_len, &data, &data_len, &info)) { return false; } diff --git a/sdk/bpf/bpf.ld b/sdk/bpf/bpf.ld index 8a3ae79a81..62a7170662 100644 --- a/sdk/bpf/bpf.ld +++ b/sdk/bpf/bpf.ld @@ -16,5 +16,4 @@ SECTIONS .gnu.hash : { *(.gnu.hash) } :dynamic .rel.dyn : { *(.rel.dyn) } :dynamic .hash : { *(.hash) } :dynamic - -} \ No newline at end of file +} diff --git a/sdk/bpf/bpf.mk b/sdk/bpf/bpf.mk index 710564f250..bb2cb1a731 100644 --- a/sdk/bpf/bpf.mk +++ b/sdk/bpf/bpf.mk @@ -60,6 +60,10 @@ BPF_CXX_FLAGS := \ -emit-llvm \ -target bpf \ -fPIC \ + -fomit-frame-pointer \ + -fno-exceptions \ + -fno-asynchronous-unwind-tables \ + -fno-unwind-tables \ BPF_LLC_FLAGS := \ -march=bpf \ diff --git a/tests/programs.rs b/tests/programs.rs index 434403d74e..884485bfa1 100644 --- a/tests/programs.rs +++ b/tests/programs.rs @@ -299,12 +299,7 @@ fn test_program_builtin_bpf_noop() { fn test_program_bpf_c() { logger::setup(); - let programs = [ - "noop", - "struct_pass", - "struct_ret", - //"noop++" // TODO fails with buffer overflow - ]; + let programs = ["noop", "struct_pass", "struct_ret", "noop++"]; for program in programs.iter() { println!("Test program: {:?}", program); let mut file = File::open(create_bpf_path(program)).expect("file open failed");