From c12ab700ec769158689367773a285103018f9648 Mon Sep 17 00:00:00 2001 From: Riccardo Schirone Date: Wed, 22 Feb 2017 14:16:16 +0100 Subject: [PATCH 1/4] engine: throw an exception if lua cannot be opened --- userspace/engine/falco_common.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/userspace/engine/falco_common.cpp b/userspace/engine/falco_common.cpp index 974dd23b..ac427a12 100644 --- a/userspace/engine/falco_common.cpp +++ b/userspace/engine/falco_common.cpp @@ -24,6 +24,10 @@ along with falco. If not, see . falco_common::falco_common() { m_ls = lua_open(); + if(!m_ls) + { + throw falco_exception("Cannot open lua"); + } luaL_openlibs(m_ls); } From f70a7aef6f18994e430b62f6b675e71281128753 Mon Sep 17 00:00:00 2001 From: Riccardo Schirone Date: Wed, 22 Feb 2017 14:18:02 +0100 Subject: [PATCH 2/4] CMakeLists: fix whitespaces --- CMakeLists.txt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 368456e4..aea81659 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -296,13 +296,13 @@ else() set(LPEG_SRC "${PROJECT_BINARY_DIR}/lpeg-prefix/src/lpeg") set(LPEG_LIB "${PROJECT_BINARY_DIR}/lpeg-prefix/src/lpeg/build/lpeg.a") ExternalProject_Add(lpeg - DEPENDS luajit + DEPENDS luajit URL "http://s3.amazonaws.com/download.draios.com/dependencies/lpeg-1.0.0.tar.gz" - URL_MD5 "0aec64ccd13996202ad0c099e2877ece" - BUILD_COMMAND LUA_INCLUDE=${LUAJIT_INCLUDE} "${PROJECT_SOURCE_DIR}/scripts/build-lpeg.sh" "${LPEG_SRC}/build" - BUILD_IN_SOURCE 1 + URL_MD5 "0aec64ccd13996202ad0c099e2877ece" + BUILD_COMMAND LUA_INCLUDE=${LUAJIT_INCLUDE} "${PROJECT_SOURCE_DIR}/scripts/build-lpeg.sh" "${LPEG_SRC}/build" + BUILD_IN_SOURCE 1 CONFIGURE_COMMAND "" - INSTALL_COMMAND "") + INSTALL_COMMAND "") endif() # @@ -332,11 +332,11 @@ else() set(LIBYAML_LIB "${LIBYAML_SRC}/.libs/libyaml.a") ExternalProject_Add(libyaml URL "http://download.draios.com/dependencies/libyaml-0.1.4.tar.gz" - URL_MD5 "4a4bced818da0b9ae7fc8ebc690792a7" - BUILD_COMMAND ${CMD_MAKE} - BUILD_IN_SOURCE 1 + URL_MD5 "4a4bced818da0b9ae7fc8ebc690792a7" + BUILD_COMMAND ${CMD_MAKE} + BUILD_IN_SOURCE 1 CONFIGURE_COMMAND ./bootstrap && ./configure - INSTALL_COMMAND "") + INSTALL_COMMAND "") endif() # From 8b98a61bccad5fe6625b258b03f79b8ca0c2b45f Mon Sep 17 00:00:00 2001 From: Riccardo Schirone Date: Wed, 22 Feb 2017 14:25:34 +0100 Subject: [PATCH 3/4] CMakeLists: fix compilation on OS X --- CMakeLists.txt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index aea81659..629bd523 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,7 +29,9 @@ set(CMAKE_CXX_FLAGS_RELEASE "-O3 -fno-strict-aliasing -DNDEBUG") add_definitions(-DPLATFORM_NAME="${CMAKE_SYSTEM_NAME}") add_definitions(-DK8S_DISABLE_THREAD) -add_definitions(-DHAS_CAPTURE) +if(CMAKE_SYSTEM_NAME MATCHES "Linux") + add_definitions(-DHAS_CAPTURE) +endif() if(CMAKE_BUILD_TYPE STREQUAL "Debug") set(KBUILD_FLAGS "${DRAIOS_DEBUG_FLAGS} ${DRAIOS_FEATURE_FLAGS}") @@ -46,6 +48,10 @@ set(CMAKE_INSTALL_PREFIX /usr) set(CMD_MAKE make) set(SYSDIG_DIR "${PROJECT_SOURCE_DIR}/../sysdig") +# make luaJIT work on OS X +if(APPLE) + set(CMAKE_EXE_LINKER_FLAGS "-pagezero_size 10000 -image_base 100000000") +endif() include(ExternalProject) @@ -370,7 +376,9 @@ endif() install(FILES falco.yaml DESTINATION "${FALCO_ETC_DIR}") -add_subdirectory("${SYSDIG_DIR}/driver" "${PROJECT_BINARY_DIR}/driver") +if(CMAKE_SYSTEM_NAME MATCHES "Linux") + add_subdirectory("${SYSDIG_DIR}/driver" "${PROJECT_BINARY_DIR}/driver") +endif() add_subdirectory("${SYSDIG_DIR}/userspace/libscap" "${PROJECT_BINARY_DIR}/userspace/libscap") add_subdirectory("${SYSDIG_DIR}/userspace/libsinsp" "${PROJECT_BINARY_DIR}/userspace/libsinsp") From 58357d3bf991c7f7de82559695e7805f77d52979 Mon Sep 17 00:00:00 2001 From: Riccardo Schirone Date: Wed, 22 Feb 2017 14:40:44 +0100 Subject: [PATCH 4/4] CMakeLists: set ExternalProject dependencies only when necessary --- CMakeLists.txt | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 629bd523..343bfb3b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -301,8 +301,12 @@ if(NOT USE_BUNDLED_LPEG) else() set(LPEG_SRC "${PROJECT_BINARY_DIR}/lpeg-prefix/src/lpeg") set(LPEG_LIB "${PROJECT_BINARY_DIR}/lpeg-prefix/src/lpeg/build/lpeg.a") + set(LPEG_DEPENDENCIES "") + if(USE_BUNDLED_LUAJIT) + list(APPEND LPEG_DEPENDENCIES "luajit") + endif() ExternalProject_Add(lpeg - DEPENDS luajit + DEPENDS ${LPEG_DEPENDENCIES} URL "http://s3.amazonaws.com/download.draios.com/dependencies/lpeg-1.0.0.tar.gz" URL_MD5 "0aec64ccd13996202ad0c099e2877ece" BUILD_COMMAND LUA_INCLUDE=${LUAJIT_INCLUDE} "${PROJECT_SOURCE_DIR}/scripts/build-lpeg.sh" "${LPEG_SRC}/build" @@ -363,8 +367,15 @@ if(NOT USE_BUNDLED_LYAML) else() set(LYAML_SRC "${PROJECT_BINARY_DIR}/lyaml-prefix/src/lyaml/ext/yaml") set(LYAML_LIB "${LYAML_SRC}/.libs/yaml.a") + set(LYAML_DEPENDENCIES "") + if(USE_BUNDLED_LUAJIT) + list(APPEND LYAML_DEPENDENCIES "luajit") + endif() + if(USE_BUNDLED_LIBYAML) + list(APPEND LYAML_DEPENDENCIES "libyaml") + endif() ExternalProject_Add(lyaml - DEPENDS libyaml luajit + DEPENDS ${LYAML_DEPENDENCIES} URL "http://download.draios.com/dependencies/lyaml-release-v6.0.tar.gz" URL_MD5 "dc3494689a0dce7cf44e7a99c72b1f30" BUILD_COMMAND ${CMD_MAKE}