diff --git a/cmake/CheckBuiltInFunctionExists.cmake b/cmake/CheckBuiltInFunctionExists.cmake
deleted file mode 100644
index 6b4128f129f2f3effa521edcd17508964b3a03bd..0000000000000000000000000000000000000000
--- a/cmake/CheckBuiltInFunctionExists.cmake
+++ /dev/null
@@ -1,7 +0,0 @@
-include(CheckCSourceCompiles)
-
-macro(check_builtin_function_exists function variable)
-    set(CMAKE_REQUIRED_FLAGS "-Wno-unused-value -Wno-error")
-    check_c_source_compiles("int main(void) { ${function}; return 0; }"
-        ${variable})
-endmacro(check_builtin_function_exists)
diff --git a/src/box/box_lua.cc b/src/box/box_lua.cc
index 4a22d69801b7d4cc0380573cc947adba44a46ed8..b4c5016fb58241e64d21559768e13b8750abe98c 100644
--- a/src/box/box_lua.cc
+++ b/src/box/box_lua.cc
@@ -159,7 +159,7 @@ lbox_tuple_slice(struct lua_State *L)
 	} else if (offset < 0 && -offset <= tuple->field_count) {
 		start = offset + tuple->field_count;
 	} else {
-		luaL_error(L, "tuple.slice(): start >= field count");
+		return luaL_error(L, "tuple.slice(): start >= field count");
 	}
 
 	if (argc == 2) {
@@ -169,13 +169,13 @@ lbox_tuple_slice(struct lua_State *L)
 		} else if (offset < 0 && -offset < tuple->field_count) {
 			end = offset + tuple->field_count;
 		} else {
-			luaL_error(L, "tuple.slice(): end > field count");
+			return luaL_error(L, "tuple.slice(): end > field count");
 		}
 	} else {
 		end = tuple->field_count;
 	}
 	if (end <= start)
-		luaL_error(L, "tuple.slice(): start must be less than end");
+		return luaL_error(L, "tuple.slice(): start must be less than end");
 
 	struct tuple_iterator it;
 	tuple_rewind(&it, tuple);
diff --git a/src/log_io.cc b/src/log_io.cc
index fdecb1840de8bde4357ef22c15040ce837ebb72f..ff1c45ff659085dd0f34fcd1fc747275e51cfe54 100644
--- a/src/log_io.cc
+++ b/src/log_io.cc
@@ -588,12 +588,16 @@ log_io_open(struct log_dir *dir, enum log_mode mode,
 	l->dir = dir;
 	l->is_inprogress = suffix == INPROGRESS;
 	if (mode == LOG_READ) {
-		if (log_io_verify_meta(l, &errmsg) != 0)
+		if (log_io_verify_meta(l, &errmsg) != 0) {
+			errmsg = strerror(errno);
 			goto error;
+		}
 	} else { /* LOG_WRITE */
 		setvbuf(l->f, NULL, _IONBF, 0);
-		if (log_io_write_header(l) != 0)
+		if (log_io_write_header(l) != 0) {
+			errmsg = strerror(errno);
 			goto error;
+		}
 	}
 	return l;
 error: