Details

    Description

      Following a change in libmariadb 3.4 with CONC-717:

      a19895efff5060531428dbb19803298d55b153bd

      ed25519_ref10 was added as an OBJECT library, to be later linked to client_ed25519 with cmake's target_link_libraries.

      Prior to CMake 3.12, one can not link OBJECT libraries directly and we get this error during configuration:

      CMake Error at libmariadb/cmake/plugins.cmake:71 (target_link_libraries):
        Target "ed25519_ref10" of type OBJECT_LIBRARY may not be linked into
        another target.  One may link only to STATIC or SHARED libraries, or to
        executables with the ENABLE_EXPORTS property set.
      Call Stack (most recent call first):
        libmariadb/plugins/auth/CMakeLists.txt:74 (REGISTER_PLUGIN)
        libmariadb/plugins/CMakeLists.txt:7 (INCLUDE)
        libmariadb/CMakeLists.txt:447 (INCLUDE)
      

      See the addition of this feature in CMake's documentation.

      Given that libmariadb has introduced a requirement for CMake 3.12 and that we do not have any platforms still supported that feature an older CMake (RHEL7 comes with cmake 3.17 in epel), it should be safe to bump the minimum Server (and libmariadb) cmake requirement to 3.12.

      Attachments

        Issue Links

          Activity

            cvicentiu Vicențiu Ciorbaru added a comment - serg Please review the following two changes: https://github.com/mariadb-corporation/mariadb-connector-c/pull/260 https://github.com/MariaDB/server/pull/3603
            wlad Vladislav Vaintroub added a comment - - edited

            There are several more cmake_minimum_required in the codebase, that cause warning (with newer cmake), if VERSION is lower than 3.5,

            That is, they should be fixed, too

             
            CMakeLists.txt:CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
            storage/mroonga/CMakeLists.txt:cmake_minimum_required(VERSION 2.8.12)
            storage/mroonga/vendor/groonga/CMakeLists.txt:cmake_minimum_required(VERSION 2.8.12)
            storage/mroonga/vendor/groonga/CMakeLists.txt:# cmake_minimum_required(VERSION 2.6.4) # CentOS 5
            storage/mroonga/vendor/groonga/vendor/plugins/groonga-normalizer-mysql/CMakeLists.txt:cmake_minimum_required(VERSION 2.8.12)
            

            wlad Vladislav Vaintroub added a comment - - edited There are several more cmake_minimum_required in the codebase, that cause warning (with newer cmake), if VERSION is lower than 3.5, That is, they should be fixed, too   CMakeLists.txt:CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12) storage/mroonga/CMakeLists.txt:cmake_minimum_required(VERSION 2.8.12) storage/mroonga/vendor/groonga/CMakeLists.txt:cmake_minimum_required(VERSION 2.8.12) storage/mroonga/vendor/groonga/CMakeLists.txt:# cmake_minimum_required(VERSION 2.6.4) # CentOS 5 storage/mroonga/vendor/groonga/vendor/plugins/groonga-normalizer-mysql/CMakeLists.txt:cmake_minimum_required(VERSION 2.8.12)

            cvicentiu, this is already pushed, isn't it? should be closed?

            serg Sergei Golubchik added a comment - cvicentiu , this is already pushed, isn't it? should be closed?

            sergI asked you to review the Connector C pull request. It did not get merged yet. I will close it when it's merged.

            cvicentiu Vicențiu Ciorbaru added a comment - serg I asked you to review the Connector C pull request. It did not get merged yet. I will close it when it's merged.
            georg Georg Richter added a comment -

            We build also mariadb_obj as obect library, maybe we just have to set target properties?

            Here is the cmake snippet from libmariadb/CMakeLists.txt:

            IF(CMAKE_VERSION VERSION_GREATER 2.8.7)
              # CREATE OBJECT LIBRARY 
              ADD_LIBRARY(mariadb_obj OBJECT ${LIBMARIADB_SOURCES})
              IF(UNIX)
                SET_TARGET_PROPERTIES(mariadb_obj PROPERTIES COMPILE_FLAGS "${CMAKE_SHARED_LIBRARY_C_FLAGS}")
              ENDIF()
              SET (MARIADB_OBJECTS $<TARGET_OBJECTS:mariadb_obj>)
            ELSE()
              SET (MARIADB_OBJECTS ${LIBMARIADB_SOURCES})
            ENDIF()
            

            georg Georg Richter added a comment - We build also mariadb_obj as obect library, maybe we just have to set target properties? Here is the cmake snippet from libmariadb/CMakeLists.txt: IF(CMAKE_VERSION VERSION_GREATER 2.8 . 7 ) # CREATE OBJECT LIBRARY ADD_LIBRARY(mariadb_obj OBJECT ${LIBMARIADB_SOURCES}) IF(UNIX) SET_TARGET_PROPERTIES(mariadb_obj PROPERTIES COMPILE_FLAGS "${CMAKE_SHARED_LIBRARY_C_FLAGS}" ) ENDIF() SET (MARIADB_OBJECTS $<TARGET_OBJECTS:mariadb_obj>) ELSE() SET (MARIADB_OBJECTS ${LIBMARIADB_SOURCES}) ENDIF()

            People

              cvicentiu Vicențiu Ciorbaru
              cvicentiu Vicențiu Ciorbaru
              Votes:
              0 Vote for this issue
              Watchers:
              4 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.