[Buildroot] [PATCH] package/opencv3: fix CMAKE_CXX_FLAGS

Max Filippov jcmvbkbc at gmail.com
Thu Sep 29 16:14:41 UTC 2016


Hi Thomas,

On Thu, Sep 29, 2016 at 2:27 AM, Thomas Petazzoni
<thomas.petazzoni at free-electrons.com> wrote:
> Adding Samuel in Cc: there is a CMake issue below.
>
> On Wed, 28 Sep 2016 11:40:32 -0700, Max Filippov wrote:
>> The commit 4904c4c "package/opencv3: use BR2_TOOLCHAIN_HAS_LIBATOMIC"
>> overrides CMAKE_CXX_FLAGS with the single -latomic, losing all ABI
>> CFLAGS that are passed there by default. This breaks build on xtensa
>> where ABI CFLAGS contain important code generation options.
>>
>> Append $(TARGET_CXXFLAGS) to CMAKE_CXX_FLAGS along with -latomic.
>>
>> Fixes:
>>   http://autobuild.buildroot.net/results/7f1c96abd8fbb5b358a07100ab623316e9bb9dcd
>>   http://autobuild.buildroot.net/results/e0c93d0f6d1da0d62d4dbba211a275bfe75e9645
>>   http://autobuild.buildroot.net/results/53e7e4b4b6a7b48b8012799d7507f7594dbf01b2
>>
>> Signed-off-by: Max Filippov <jcmvbkbc at gmail.com>
>> ---
>>  package/opencv3/opencv3.mk | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/package/opencv3/opencv3.mk b/package/opencv3/opencv3.mk
>> index 2529de9..10660a9 100644
>> --- a/package/opencv3/opencv3.mk
>> +++ b/package/opencv3/opencv3.mk
>> @@ -12,7 +12,7 @@ OPENCV3_LICENSE_FILES = LICENSE
>>
>>  # Uses __atomic_fetch_add_4
>>  ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
>> -OPENCV3_CONF_OPTS += -DCMAKE_CXX_FLAGS="-latomic"
>> +OPENCV3_CONF_OPTS += -DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) -latomic"
>
> There is something fishy going on here. Indeed,
> support/misc/toolchainfile.cmake.in contains:
>
>   set(CMAKE_CXX_FLAGS "@@TARGET_CXXFLAGS@@ ${CMAKE_CXX_FLAGS}" CACHE STRING "Buildroot CXXFLAGS")
>
> So it should normally always prefix CMAKE_CXX_FLAGS with
> TARGET_CXXFLAGS. Can you check the toolchain.cmake file that gets
> generated during your build? Does it contains the Xtensa specific
> CXXFLAGS ?

Yes, it does.
opencv2 which has similar cmake build system but doesn't pass
-DCMAKE_CXX_FLAGS builds correctly.

-- 
Thanks.
-- Max



More information about the buildroot mailing list