Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-36157

handler_socket fails to compile on clang-20

Details

    Description

      [62/1509] Building CXX object plugin/handler_socket/CMakeFiles/hsclient.dir/libhsclient/socket.cpp.o
      FAILED: plugin/handler_socket/CMakeFiles/hsclient.dir/libhsclient/socket.cpp.o 
      /usr/bin/clang++ -DHAVE_CONFIG_H -D_FILE_OFFSET_BITS=64 -I/source/wsrep-lib/include -I/source/wsrep-lib/wsrep-API/v26 -I/build/include -I/source/include/providers -I/source/plugin/handler_socket/libhsclient -I/source/include -I/source/sql -I/source/zlib -I/build/zlib -stdlib=libc++ -O2 -g -DNDEBUG -fsanitize=memory -fsanitize-memory-track-origins -U_FORTIFY_SOURCE -DDBUG_OFF -fPIC -std=gnu++17 -MD -MT plugin/handler_socket/CMakeFiles/hsclient.dir/libhsclient/socket.cpp.o -MF plugin/handler_socket/CMakeFiles/hsclient.dir/libhsclient/socket.cpp.o.d -o plugin/handler_socket/CMakeFiles/hsclient.dir/libhsclient/socket.cpp.o -c /source/plugin/handler_socket/libhsclient/socket.cpp
      /source/plugin/handler_socket/libhsclient/socket.cpp:176:12: error: no matching function for call to 'accept'
        176 |   fd.reset(accept(listen_fd, reinterpret_cast<sockaddr *>(&addr_r),
            |            ^~~~~~
      /usr/include/x86_64-linux-gnu/sys/socket.h:306:12: note: candidate function not viable: no known conversion from 'size_socket *' (aka 'int *') to 'socklen_t *__restrict' (aka 'unsigned int *__restrict') for 3rd argument
        306 | extern int accept (int __fd, __SOCKADDR_ARG __addr,
            |            ^
        307 |                    socklen_t *__restrict __addr_len);
            |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      1 error generated.
      [66/1509] Building CXX object plugin/handler_socket/CMakeFiles/hsclient.dir/libhsclient/hstcpcli.cpp.o
      ninja: build stopped: subcommand failed.
      

      Attachments

        Issue Links

          Activity

            danblack Daniel Black added a comment -

            Invalid.

            Was a consequence of MDEV-36156 attempts to correct -fsanitizer=memory for stdc++ detection but failed in detection of sizes etc like this,

            And libatomics

            -- Performing Test HAVE_GCC_C11_ATOMICS_WITHOUT_LIBATOMIC
            -- Performing Test HAVE_GCC_C11_ATOMICS_WITHOUT_LIBATOMIC - Failed
            -- Performing Test HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC
            -- Performing Test HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC - Failed
             
            ...
             
            FAILED: unittest/mysys/CMakeFiles/my_atomic-t.dir/my_atomic-t.c.o 
            /usr/bin/clang -DHAVE_CONFIG_H -D_FILE_OFFSET_BITS=64 -I/source/wsrep-lib/include -I/source/wsrep-lib/wsrep-API/v26 -I/build/include -I/source/include/providers -I/source/include -I/source/unittest/mytap -I/source/zlib -I/build/zlib -O2 -g -DNDEBUG -fsanitize=memory -fsanitize-memory-track-origins -U_FORTIFY_SOURCE -fno-omit-frame-pointer -DDBUG_OFF -Wall -Wdeclaration-after-statement -Wenum-compare -Wenum-conversion -Wextra -Wformat-security -Winconsistent-missing-override -Wmissing-braces -Wno-format-truncation -Wno-init-self -Wno-null-conversion -Wno-unused-parameter -Wno-unused-private-field -Wnon-virtual-dtor -Woverloaded-virtual -Wvla -Wwrite-strings -Wcast-function-type-strict   -DHAVE_OPENSSL -DOPENSSL_API_COMPAT=0x10100000L -std=gnu99 -MD -MT unittest/mysys/CMakeFiles/my_atomic-t.dir/my_atomic-t.c.o -MF unittest/mysys/CMakeFiles/my_atomic-t.dir/my_atomic-t.c.o.d -o unittest/mysys/CMakeFiles/my_atomic-t.dir/my_atomic-t.c.o -c /source/unittest/mysys/my_atomic-t.c
            /source/unittest/mysys/my_atomic-t.c:30:5: error: call to undeclared function 'my_atomic_add32'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
               30 |     my_atomic_add32(&bad, x);
                  |     ^
            /source/unittest/mysys/my_atomic-t.c:45:5: error: call to undeclared function 'my_atomic_add64'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
               45 |     my_atomic_add64(&a64, x);
             
             
            buildbot@2f11790aa1e1:/build$ grep -A 30 "HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC" ./CMakeFiles/CMakeError.log 
            Performing C++ SOURCE FILE Test HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC failed with the following output:
            Change Dir: /build/CMakeFiles/CMakeScratch/TryCompile-JXKj3i
             
            Run Build Command(s):/usr/bin/ninja cmTC_e9341 && [1/2] Building CXX object CMakeFiles/cmTC_e9341.dir/src.cxx.o
            [2/2] Linking CXX executable cmTC_e9341
            FAILED: cmTC_e9341 
            : && /usr/bin/clang++ -stdlib=libc++ -L/msan-libs -Wl,-rpath=/msan-libs CMakeFiles/cmTC_e9341.dir/src.cxx.o -o cmTC_e9341  -lm  -lcrypt  -ldl  -latomic && :
            /usr/bin/ld: /msan-libs/libc++.so.1: undefined reference to `__msan_memset'
            /usr/bin/ld: /msan-libs/libc++.so.1: undefined reference to `__msan_retval_origin_tls'
            /usr/bin/ld: /msan-libs/libc++.so.1: undefined reference to `__msan_unpoison'
            /usr/bin/ld: /msan-libs/libc++.so.1: undefined reference to `__msan_param_origin_tls'
            /usr/bin/ld: /msan-libs/libc++.so.1: undefined reference to `__msan_memcpy'
            /usr/bin/ld: /msan-libs/libc++.so.1: undefined reference to `__msan_retval_tls'
            

            danblack Daniel Black added a comment - Invalid. Was a consequence of MDEV-36156 attempts to correct -fsanitizer=memory for stdc++ detection but failed in detection of sizes etc like this, And libatomics -- Performing Test HAVE_GCC_C11_ATOMICS_WITHOUT_LIBATOMIC -- Performing Test HAVE_GCC_C11_ATOMICS_WITHOUT_LIBATOMIC - Failed -- Performing Test HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC -- Performing Test HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC - Failed   ...   FAILED: unittest/mysys/CMakeFiles/my_atomic-t.dir/my_atomic-t.c.o /usr/bin/clang -DHAVE_CONFIG_H -D_FILE_OFFSET_BITS=64 -I/source/wsrep-lib/include -I/source/wsrep-lib/wsrep-API/v26 -I/build/include -I/source/include/providers -I/source/include -I/source/unittest/mytap -I/source/zlib -I/build/zlib -O2 -g -DNDEBUG -fsanitize=memory -fsanitize-memory-track-origins -U_FORTIFY_SOURCE -fno-omit-frame-pointer -DDBUG_OFF -Wall -Wdeclaration-after-statement -Wenum-compare -Wenum-conversion -Wextra -Wformat-security -Winconsistent-missing-override -Wmissing-braces -Wno-format-truncation -Wno-init-self -Wno-null-conversion -Wno-unused-parameter -Wno-unused-private-field -Wnon-virtual-dtor -Woverloaded-virtual -Wvla -Wwrite-strings -Wcast-function-type-strict -DHAVE_OPENSSL -DOPENSSL_API_COMPAT=0x10100000L -std=gnu99 -MD -MT unittest/mysys/CMakeFiles/my_atomic-t.dir/my_atomic-t.c.o -MF unittest/mysys/CMakeFiles/my_atomic-t.dir/my_atomic-t.c.o.d -o unittest/mysys/CMakeFiles/my_atomic-t.dir/my_atomic-t.c.o -c /source/unittest/mysys/my_atomic-t.c /source/unittest/mysys/my_atomic-t.c:30:5: error: call to undeclared function 'my_atomic_add32'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 30 | my_atomic_add32(&bad, x); | ^ /source/unittest/mysys/my_atomic-t.c:45:5: error: call to undeclared function 'my_atomic_add64'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 45 | my_atomic_add64(&a64, x);     buildbot@2f11790aa1e1:/build$ grep -A 30 "HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC" ./CMakeFiles/CMakeError.log Performing C++ SOURCE FILE Test HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC failed with the following output: Change Dir: /build/CMakeFiles/CMakeScratch/TryCompile-JXKj3i   Run Build Command(s):/usr/bin/ninja cmTC_e9341 && [1/2] Building CXX object CMakeFiles/cmTC_e9341.dir/src.cxx.o [2/2] Linking CXX executable cmTC_e9341 FAILED: cmTC_e9341 : && /usr/bin/clang++ -stdlib=libc++ -L/msan-libs -Wl,-rpath=/msan-libs CMakeFiles/cmTC_e9341.dir/src.cxx.o -o cmTC_e9341 -lm -lcrypt -ldl -latomic && : /usr/bin/ld: /msan-libs/libc++.so.1: undefined reference to `__msan_memset' /usr/bin/ld: /msan-libs/libc++.so.1: undefined reference to `__msan_retval_origin_tls' /usr/bin/ld: /msan-libs/libc++.so.1: undefined reference to `__msan_unpoison' /usr/bin/ld: /msan-libs/libc++.so.1: undefined reference to `__msan_param_origin_tls' /usr/bin/ld: /msan-libs/libc++.so.1: undefined reference to `__msan_memcpy' /usr/bin/ld: /msan-libs/libc++.so.1: undefined reference to `__msan_retval_tls'

            People

              Unassigned Unassigned
              danblack Daniel Black
              Votes:
              0 Vote for this issue
              Watchers:
              1 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.