Uploaded image for project: 'MariaDB MaxScale'
  1. MariaDB MaxScale
  2. MXS-4343

error: no matching function for call to 'mkstemp'

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Won't Fix
    • 22.08.1
    • N/A
    • build
    • None

    Description

      Hi.
      I am trying to compile your code on FreeBSD and have an issue in compilation the source code with -std=gnu++14

      FreeBSD-Ports/maxscale/work/.build/maxutils/maxbase/src && /usr/bin/c++ -DOPENSSL_1_1 -Iwork/code/FreeBSD-Ports/maxscale/work/.build/connector-c/install/include/mariadb -Iwork/code/FreeBSD-Ports/maxscale/work/.build/pcre2 -Iwork/code/FreeBSD-Ports/maxscale/work/.build/libmicrohttpd/include -Iwork/code/FreeBSD-Ports/maxscale/work/.build/jwt-cpp-prefix/src/jwt-cpp/include -Iwork/code/FreeBSD-Ports/maxscale/work/.build/jansson/install/include -Iwork/code/FreeBSD-Ports/maxscale/work/.build/librdkafka/include -Iwork/code/FreeBSD-Ports/maxscale/work/MaxScale-22.08.1/include -Iwork/code/FreeBSD-Ports/maxscale/work/MaxScale-22.08.1/server/modules/include -Iwork/code/FreeBSD-Ports/maxscale/work/.build/include -I/usr/local/include -Iwork/code/FreeBSD-Ports/maxscale/work/MaxScale-22.08.1/maxutils/maxbase/include -Iwork/code/FreeBSD-Ports/maxscale/work/MaxScale-22.08.1/maxutils/maxsql/include -Iwork/code/FreeBSD-Ports/maxscale/work/MaxScale-22.08.1/maxutils/maxsimd/include -I/usr/local/include/libxml2 -pipe -g -fstack-protector-strong -fno-strict-aliasing -rdynamic -fno-omit-frame-pointer -Wall -Wno-unused-variable -Wno-unused-function -Wno-unused-result -fPIC -Wno-deprecated-declarations -Wsuggest-override -pipe -g -fstack-protector-strong -fno-strict-aliasing -ggdb -pthread -pipe -Wformat -fstack-protector --param=ssp-buffer-size=4 -DSS_DEBUG -DLOG_ASSERT -std=gnu++14 -MD -MT maxutils/maxbase/src/CMakeFiles/maxbase.dir/filesystem.cc.o -MF CMakeFiles/maxbase.dir/filesystem.cc.o.d -o CMakeFiles/maxbase.dir/filesystem.cc.o -c work/code/FreeBSD-Ports/maxscale/work/MaxScale-22.08.1/maxutils/maxbase/src/filesystem.cc
      c++: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]
      In file included from work/code/FreeBSD-Ports/maxscale/work/MaxScale-22.08.1/maxutils/maxbase/src/filesystem.cc:14:
      work/code/FreeBSD-Ports/maxscale/work/MaxScale-22.08.1/maxutils/maxbase/include/maxbase/filesystem.hh:35:83: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
          static_assert(sizeof(typename Container::iterator::value_type) == sizeof(char));
                                                                                        ^
                                                                                        , ""
      work/code/FreeBSD-Ports/maxscale/work/MaxScale-22.08.1/maxutils/maxbase/src/filesystem.cc:29:14: error: no matching function for call to 'mkstemp'
          int fd = mkstemp(tmp.data());
                   ^~~~~~~
      /usr/include/stdlib.h:195:6: note: candidate function not viable: 1st argument ('const std::basic_string<char>::value_type *' (aka 'const char *')) would lose const qualifier
      int      mkstemp(char *);
               ^
      1 warning and 1 error generated.
      
      

      Here is issue with parameter -std=gnu++17
      In version C++17 was removed std::ptr<> from standard
      for this case I have patch

      --- maxutils/maxbase/include/maxbase/string.hh.orig     2022-09-12 06:23:56 UTC
      +++ maxutils/maxbase/include/maxbase/string.hh
      @@ -123,7 +123,7 @@ inline void ltrim(std::string& s)
           s.erase(s.begin(),
                   std::find_if(s.begin(),
                                s.end(),
      -                         std::not1(std::ptr_fun<int, int>(std::isspace))));
      +                         [](unsigned char c){ return !std::isspace(c);}));
       }
       
       /**
      @@ -135,7 +135,8 @@ inline void rtrim(std::string& s)
       {
           s.erase(std::find_if(s.rbegin(),
                                s.rend(),
      -                         std::not1(std::ptr_fun<int, int>(std::isspace))).base(),
      +                         [](unsigned char c){ return !std::isspace(c);}).base(),
      +                         //std::not1(std::ptr_fun<int, int>(std::isspace))).base(),
                   s.end());
       }
      

      [  9%] Building CXX object maxutils/maxbase/src/CMakeFiles/maxbase.dir/filesystem.cc.o
      cd work/code/FreeBSD-Ports/maxscale/work/.build/maxutils/maxbase/src && /usr/bin/c++ -DOPENSSL_1_1 -Iwork/code/FreeBSD-Ports/maxscale/work/.build/connector-c/install/include/mariadb -Iwork/code/FreeBSD-Ports/maxscale/work/.build/pcre2 -Iwork/code/FreeBSD-Ports/maxscale/work/.build/libmicrohttpd/include -Iwork/code/FreeBSD-Ports/maxscale/work/.build/jwt-cpp-prefix/src/jwt-cpp/include -Iwork/code/FreeBSD-Ports/maxscale/work/.build/jansson/install/include -Iwork/code/FreeBSD-Ports/maxscale/work/.build/librdkafka/include -Iwork/code/FreeBSD-Ports/maxscale/work/MaxScale-22.08.1/include -Iwork/code/FreeBSD-Ports/maxscale/work/MaxScale-22.08.1/server/modules/include -Iwork/code/FreeBSD-Ports/maxscale/work/.build/include -I/usr/local/include -Iwork/code/FreeBSD-Ports/maxscale/work/MaxScale-22.08.1/maxutils/maxbase/include -Iwork/code/FreeBSD-Ports/maxscale/work/MaxScale-22.08.1/maxutils/maxsql/include -Iwork/code/FreeBSD-Ports/maxscale/work/MaxScale-22.08.1/maxutils/maxsimd/include -I/usr/local/include/libxml2 -pipe -g -fstack-protector-strong -fno-strict-aliasing -rdynamic -fno-omit-frame-pointer -Wall -Wno-unused-variable -Wno-unused-function -Wno-unused-result -fPIC -Wno-deprecated-declarations -Wsuggest-override -pipe -g -fstack-protector-strong -fno-strict-aliasing -ggdb -pthread -pipe -Wformat -fstack-protector --param=ssp-buffer-size=4 -DSS_DEBUG -DLOG_ASSERT -std=gnu++17 -MD -MT maxutils/maxbase/src/CMakeFiles/maxbase.dir/filesystem.cc.o -MF CMakeFiles/maxbase.dir/filesystem.cc.o.d -o CMakeFiles/maxbase.dir/filesystem.cc.o -c work/code/FreeBSD-Ports/maxscale/work/MaxScale-22.08.1/maxutils/maxbase/src/filesystem.cc
      c++: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]
      In file included from work/code/FreeBSD-Ports/maxscale/work/MaxScale-22.08.1/maxutils/maxbase/src/filesystem.cc:14:
      In file included from work/code/FreeBSD-Ports/maxscale/work/MaxScale-22.08.1/maxutils/maxbase/include/maxbase/filesystem.hh:18:
      work/code/FreeBSD-Ports/maxscale/work/MaxScale-22.08.1/maxutils/maxbase/include/maxbase/string.hh:126:41: error: no member named 'ptr_fun' in namespace 'std'
                               std::not1(std::ptr_fun<int, int>(std::isspace))));
                                         ~~~~~^
      work/code/FreeBSD-Ports/maxscale/work/MaxScale-22.08.1/maxutils/maxbase/include/maxbase/string.hh:126:52: error: expected '(' for function-style cast or type construction
                               std::not1(std::ptr_fun<int, int>(std::isspace))));
                                                      ~~~^
      work/code/FreeBSD-Ports/maxscale/work/MaxScale-22.08.1/maxutils/maxbase/include/maxbase/string.hh:126:57: error: expected '(' for function-style cast or type construction
                               std::not1(std::ptr_fun<int, int>(std::isspace))));
                                                           ~~~^
      work/code/FreeBSD-Ports/maxscale/work/MaxScale-22.08.1/maxutils/maxbase/include/maxbase/string.hh:138:41: error: no member named 'ptr_fun' in namespace 'std'
                               std::not1(std::ptr_fun<int, int>(std::isspace))).base(),
                                         ~~~~~^
      work/code/FreeBSD-Ports/maxscale/work/MaxScale-22.08.1/maxutils/maxbase/include/maxbase/string.hh:138:52: error: expected '(' for function-style cast or type construction
                               std::not1(std::ptr_fun<int, int>(std::isspace))).base(),
                                                      ~~~^
      work/code/FreeBSD-Ports/maxscale/work/MaxScale-22.08.1/maxutils/maxbase/include/maxbase/string.hh:138:57: error: expected '(' for function-style cast or type construction
                               std::not1(std::ptr_fun<int, int>(std::isspace))).base(),
                                                           ~~~^
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            maxfx Martin Filla
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.