On 11/06/18 01:07 AM, Rich Reynolds wrote:
On 11/5/18 2:38 PM, Bob Friesenhahn wrote:
On Mon, 5 Nov 2018, Rich Reynolds wrote:


[ 32%] Building CXX object sql/CMakeFiles/binlog.dir/binlog_crypt_data.cc.o /codebase/oi-userland/components/database/percona-server-57/percona-server-5.7.22-22/sql/binlog_crypt_data.cc: In member function 'void Binlog_crypt_data::free_key(uchar*&, std::size_t&)': /codebase/oi-userland/components/database/percona-server-57/percona-server-5.7.22-22/sql/binlog_crypt_data.cc:62:37: error: 'memset_s' was not declared in this scope
    memset_s(key, 512, 0, key_length);
                                    ^
make[3]: *** [sql/CMakeFiles/binlog.dir/build.make:336: sql/CMakeFiles/binlog.dir/binlog_crypt_data.cc.o] Error 1



this a patching, upstream or makefile issue?  ill investigate if no one knows off the top of head

This appears to be a C'11 function.  See https://en.cppreference.com/w/c/string/byte/memset.  Depending on C'11 at this time is very optimistic.

What version of GCC are you using?

Bob
cmake was fine with 6.4.0

-- Running cmake version 3.11.3
-- Found Git: /usr/bin/git (found version "2.19.1")
-- Configuring with MAX_INDEXES = 64U
-- The C compiler identification is GNU 6.4.0
-- The CXX compiler identification is GNU 6.4.0
-- Check for working C compiler: /usr/gcc/6/bin/gcc
-- Check for working C compiler: /usr/gcc/6/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/gcc/6/bin/g++
-- Check for working CXX compiler: /usr/gcc/6/bin/g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done

and cuz more information is better than less:

-- CMAKE_BUILD_TYPE: RELEASE
-- COMPILE_DEFINITIONS: _FILE_OFFSET_BITS=64;__EXTENSIONS__;_POSIX_PTHREAD_SEMANTICS;_REENTRANT;_PTHREADS;BOOST_GEOMETRY_SQRT_CHECK_FINITENESS;HAVE_CONFIG_H;HAVE_LIBEVENT1 -- CMAKE_C_FLAGS: -m32 -O3 -Wall -Wextra -Wformat-security -Wvla -Wwrite-strings -Wdeclaration-after-statement -- CMAKE_CXX_FLAGS:  -m32 -O3 -Wall -Wextra -Wformat-security -Wvla -Woverloaded-virtual -Wno-unused-parameter
-- CMAKE_C_LINK_FLAGS:  -m32
-- CMAKE_CXX_LINK_FLAGS:  -m32
-- CMAKE_C_FLAGS_RELEASE: -O3 -DNDEBUG -DDBUG_OFF -DNDEBUG
-- CMAKE_CXX_FLAGS_RELEASE: -O3 -DNDEBUG -DDBUG_OFF -DNDEBUG
-- Configuring done

rich


Three months ago illumos added support for memset_s(3C) (https://www.illumos.org/issues/8548) before that it likely wasn't detected.

memset_s(3C) seems to require

  #define __STDC_WANT_LIB_EXT1__ 1
  #include <string.h>

I don't know how to do that properly in cmake/C++.

If anyone does know, I'll fix it in userland when updating Percona Server to 5.7.23-23.

This works for cmake to use GCC 7.3:

  GCC_VERSION = 7

Michal

_______________________________________________
oi-dev mailing list
[email protected]
https://openindiana.org/mailman/listinfo/oi-dev

Reply via email to