[oe] [meta-oe][PATCH] rocksdb: Fix build failure due to GCC9 deprecated-copy pessimizing-move

Adrian Bunk bunk at stusta.de
Fri May 31 08:44:47 UTC 2019


On Fri, May 31, 2019 at 10:52:17AM +0800, zhe.he at windriver.com wrote:
> From: He Zhe <zhe.he at windriver.com>
> 
> GCC9 introduce more stricter checks deprecated-copy and pessimizing-move, while
> rocksdb uses -Werror and causes the following build error.
> 
> db/version_edit.h:178:33: error: implicitly-declared 'constexpr rocksdb::FileDescriptor::FileDescriptor(const rocksdb::FileDescriptor&)' is deprecated [-Werror=deprecated-copy]
> 
> utilities/persistent_cache/persistent_cache_util.h:51:23: error: moving a local object in a return statement prevents copy elision [-Werror=pessimizing-move]
> 
> Signed-off-by: He Zhe <zhe.he at windriver.com>
> ---
>  meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb b/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb
> index 8d84619..bbd8e4f 100644
> --- a/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb
> +++ b/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb
> @@ -31,6 +31,9 @@ EXTRA_OECMAKE = "\
>      -DWITH_TESTS=OFF \
>      -DWITH_TOOLS=OFF \
>  "
> +do_compile_prepend() {
> +    sed -i 's/set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wno-error=shadow")/set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wno-error=shadow -Wno-error=deprecated-copy -Wno-error=pessimizing-move")/' ${S}/CMakeLists.txt
> +}
>...

It would be more elegant to add -DFAIL_ON_WARNINGS=OFF to EXTRA_OECMAKE 
instead.

This is also correct in general, since the few packages using -Werror 
are frequently causing this kind of problem for distributions.

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed



More information about the Openembedded-devel mailing list