Tarantool development patches archive
 help / color / mirror / Atom feed
* [Tarantool-patches] [V2] luajit: pass properly compile options to LuaJIT for RelWithDebInfo
@ 2020-07-24 13:37 Timur Safin
  2020-07-28 14:03 ` Alexander Turenko
  2020-08-06 14:41 ` Igor Munkin
  0 siblings, 2 replies; 3+ messages in thread
From: Timur Safin @ 2020-07-24 13:37 UTC (permalink / raw)
  To: imun; +Cc: tarantool-patches

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_<UPPER-MODE> 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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-08-06 14:52 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-24 13:37 [Tarantool-patches] [V2] luajit: pass properly compile options to LuaJIT for RelWithDebInfo Timur Safin
2020-07-28 14:03 ` Alexander Turenko
2020-08-06 14:41 ` Igor Munkin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox