Skip to content

Commit

Permalink
Merge pull request iovisor#34 from iovisor/ast_dev
Browse files Browse the repository at this point in the history
fix build with gcc < 4.9
  • Loading branch information
drzaeus77 committed Jun 9, 2015
2 parents f6b7c9b + ab6a37f commit c765d24
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
4 changes: 3 additions & 1 deletion src/cc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ BISON_TARGET(Parser parser.yy ${CMAKE_CURRENT_BINARY_DIR}/parser.yy.cc COMPILE_F
FLEX_TARGET(Lexer lexer.ll ${CMAKE_CURRENT_BINARY_DIR}/lexer.ll.cc COMPILE_FLAGS "--c++ --o lexer.ll.cc")
ADD_FLEX_BISON_DEPENDENCY(Lexer Parser)

set(CMAKE_SHARED_LINKER_FLAGS "-static-libstdc++ -Wl,--exclude-libs=ALL")
# if gcc 4.9 or higher is used, static libstdc++ is a good option
#set(CMAKE_SHARED_LINKER_FLAGS "-static-libstdc++ -Wl,--exclude-libs=ALL")
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--exclude-libs=ALL")

add_library(bpfprog SHARED bpf_common.cc bpf_module.cc codegen_llvm.cc
node.cc parser.cc printer.cc type_check.cc libbpf.c b_frontend_action.cc
Expand Down
9 changes: 5 additions & 4 deletions src/cc/kbuild_helper.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,10 @@ class DirStack {
char cwd_[256];
};

static int ftw_cb(const char *path, const struct stat *, int) {
return ::remove(path);
}

// Scoped class to manage the creation/deletion of tmpdirs
class TmpDir {
public:
Expand All @@ -69,10 +73,7 @@ class TmpDir {
ok_ = true;
}
~TmpDir() {
auto fn = [] (const char *path, const struct stat *, int) -> int {
return ::remove(path);
};
if (::ftw(prefix_.c_str(), fn, 20) < 0)
if (::ftw(prefix_.c_str(), ftw_cb, 20) < 0)
::perror("ftw");
else
::remove(prefix_.c_str());
Expand Down

0 comments on commit c765d24

Please sign in to comment.