[Buildroot] [PATCH v2 05/12] package/flare-engine: fix BUG_85180 build timeout

Giulio Benetti giulio.benetti at micronovasrl.com
Mon May 27 17:20:55 UTC 2019


Hello Thomas,

Il 24/05/2019 22:30, Thomas Petazzoni ha scritto:
> On Fri, 24 May 2019 22:05:12 +0200
> Giulio Benetti <giulio.benetti at micronovasrl.com> wrote:
> 
>>> Why does flare-engine need this, but not jasper, which is also a
>>> CMake-based package ?
>>
>> Because in flare-engine CMakeLists.txt there is no fallback to -O0, so
>> that was the only decent way to force CMake to generate Makefiles
>> without optimizations.
> 
> Could you be more specific ? How does it work for jasper and
> libcpprestsdk, which are also based on CMake ?

Yes, the problem here is that even if there's the way to append 
something to CMAKE_CXX_FLAGS, then any other CMAKE_CXX_FLAGS_* will be 
appended, so if I set CMAKE_CXX_FLAGS to -O0, I will obtain "-O0 -O2 -g".

This is due to the fact that we fall into one of the cases of the next 
if-elseif statements(in CMakeLists.txt):
"
if(CMAKE_BUILD_TYPE STREQUAL "Release")
   set(CMAKE_CXX_FLAGS_RELEASE "-O2 -g0")
   if(MINGW)
     set(CMAKE_CXX_FLAGS_RELEASE "-Wl,-subsystem,windows 
${CMAKE_CXX_FLAGS_RELEASE}")
   endif()
elseif(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
   set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")
elseif(CMAKE_BUILD_TYPE STREQUAL "MinSizeRel")
   set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os -g0")
elseif(CMAKE_BUILD_TYPE STREQUAL "Debug")
   set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3 -pg")
   set(CMAKE_EXE_LINKER_FLAGS_DEBUG "-pg")
   set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "-pg")
   set(CMAKE_MODULE_LINKER_FLAGS_DEBUG "-pg")
endif()
"
where Release is the default and if BR2_ENABLE_DEBUG=y 
CMAKE_BUILD_TYPE=RelWithDebInfo according to flare-engine.mk
So I thought to set CMAKE_BUILD_TYPE to "Dummy" to jump over that 
if-elseif. But just right now I've realized that's enough to give 
-DCMAKE_BUILD_TYPE=
Empty is enough to jump over if-elseif.
Another way would be to patch CMakeLists.txt adding a fallback "else" to 
those if-elseif

What do you think?

Best regards
-- 
Giulio Benetti
CTO

MICRONOVA SRL
Sede: Via A. Niedda 3 - 35010 Vigonza (PD)
Tel. 049/8931563 - Fax 049/8931346
Cod.Fiscale - P.IVA 02663420285
Capitale Sociale € 26.000 i.v.
Iscritta al Reg. Imprese di Padova N. 02663420285
Numero R.E.A. 258642


More information about the buildroot mailing list