From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp53.i.mail.ru (smtp53.i.mail.ru [94.100.177.113]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id DEBB5445322 for ; Fri, 24 Jul 2020 16:38:00 +0300 (MSK) From: Timur Safin Date: Fri, 24 Jul 2020 16:37:39 +0300 Message-Id: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [Tarantool-patches] [V2] luajit: pass properly compile options to LuaJIT for RelWithDebInfo List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: imun@tarantool.org Cc: tarantool-patches@dev.tarantool.org It was discovered the harder way (while debugging) that LuaJIT sources do not generate line info debug information while we are in any of optimized modes (e.g. RelWithDebInfo). Simplistically we need to append `-g -ggdb` to optimization flags in luajit_cflags, but that would be fragile in the longer run. We need just to pass CMAKE_C_FLAGS_ instead, because it would contain -g -ggdb for RelWithDebInfo, iff selected compiler support those options. Closes #4827 --- cmake/luajit.cmake | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/cmake/luajit.cmake b/cmake/luajit.cmake index 555bc8371..76155c0c6 100644 --- a/cmake/luajit.cmake +++ b/cmake/luajit.cmake @@ -139,7 +139,9 @@ macro(luajit_build) # will most certainly wreak havok. # # This stuff is extremely fragile, proceed with caution. - set (luajit_cflags ${CMAKE_C_FLAGS}) + string (TOUPPER ${CMAKE_BUILD_TYPE} upper_build_type) + set (c_flags_init "CMAKE_C_FLAGS_${upper_build_type}") + set (luajit_cflags ${${c_flags_init}}) set (luajit_ldflags ${CMAKE_EXE_LINKER_FLAGS}) separate_arguments(luajit_cflags) separate_arguments(luajit_ldflags) @@ -168,19 +170,12 @@ macro(luajit_build) "-pagezero_size 10000 -image_base 100000000") endif() - # We are consciously ommiting debug info in RelWithDebInfo mode + set (upper_build_type) + set (c_flags_init) + if (${CMAKE_BUILD_TYPE} STREQUAL "Debug") - set (luajit_ccopt -O0) - if (CC_HAS_GGDB) - set (luajit_ccdebug -g -ggdb) - else () - set (luajit_ccdebug -g) - endif () add_definitions(-DLUA_USE_APICHECK=1) add_definitions(-DLUA_USE_ASSERT=1) - else () - set (luajit_ccopt -O2) - set (luajit_ccdbebug "") endif() if (${CMAKE_SYSTEM_NAME} STREQUAL Darwin) # Pass sysroot - prepended in front of system header/lib dirs, -- 2.20.1