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

tokudb doesn't build with gcc8 due to warning

Details

    Description

      The CMake code of the tokudb build files sets and checks the following cflags:

      set_cflags_if_supported(
        -Wextra
        -Wbad-function-cast
        -Wno-missing-noreturn
        -Wstrict-prototypes
        -Wmissing-prototypes
        -Wmissing-declarations
        -Wpointer-arith
        #-Wshadow will fail with GCC-8
        ${OPTIONAL_CFLAGS}
        ## other flags to try:
        #-Wunsafe-loop-optimizations
        #-Wpointer-arith
        #-Wc++-compat
        #-Wc++11-compat
        #-Wwrite-strings
        #-Wzero-as-null-pointer-constant
        #-Wlogical-op
        #-Wvector-optimization-performance
        )
      

      Of those, the following produce a warning with gcc8 with cause CMake to abort the compilation. Therefore they have to be removed. This pertains all versions. It probably does not trigger with old CMake versions or older gcc versions that do not print those warnings.

      -Wbad-function-cast
      -Wstrict-prototypes
      -Wmissing-prototypes
      

      Warnings:
      cc1plus: warning: command line option '-Wbad-function-cast' is valid for C/ObjC but not for C++
      cc1plus: warning: command line option '-Wstrict-prototypes' is valid for C/ObjC but not for C++
      cc1plus: warning: command line option '-Wmissing-prototypes' is valid for C/ObjC but not for C++
      

      Attachments

        1. CMakeError.log
          192 kB
          Noel Kuntze
        2. CMakeOutput.log
          805 kB
          Noel Kuntze

        Issue Links

          Activity

            thermi Noel Kuntze added a comment -

            I just figured out that the problem is only caused when LANG is not set to C.
            CMakeOutput.log and CMakeError.log are attached. CMakeOutput.log CMakeError.log

            thermi Noel Kuntze added a comment - I just figured out that the problem is only caused when LANG is not set to C. CMakeOutput.log and CMakeError.log are attached. CMakeOutput.log CMakeError.log

            SET(fail_patterns) in cmake/check_compiler_flag.cmake muß ein wenig Deutsch üben.

            serg, was meinst Du dazu?

            wlad Vladislav Vaintroub added a comment - SET(fail_patterns) in cmake/check_compiler_flag.cmake muß ein wenig Deutsch üben. serg , was meinst Du dazu?
            wlad Vladislav Vaintroub added a comment - - edited

            maybe

             
             set(ENV{LANG}  C)
            

            in MY_CHECK_C_COMPILER_FLAG,MY_CHECK_CXX_COMPILER_FLAG helps

            thermi, kannst Du ausprobieren ob es hilft?

            wlad Vladislav Vaintroub added a comment - - edited maybe set(ENV{LANG} C) in MY_CHECK_C_COMPILER_FLAG,MY_CHECK_CXX_COMPILER_FLAG helps thermi , kannst Du ausprobieren ob es hilft?
            thermi Noel Kuntze added a comment -

            Yes, that works and makes all the CMake tests pass.

            thermi Noel Kuntze added a comment - Yes, that works and makes all the CMake tests pass.

            Great, that explains it. Thanks!

            serg Sergei Golubchik added a comment - Great, that explains it. Thanks!

            People

              wlad Vladislav Vaintroub
              thermi Noel Kuntze
              Votes:
              0 Vote for this issue
              Watchers:
              3 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.