Skip to content

bundled libcds breaks build on s390x #7395

@sharkcz

Description

@sharkcz

Per our CI a recent commit (most likely d2795cc) breaks build on Fedora/s390x platform.

from the build log

...
make libcds
make[4]: Entering directory '/home/jenkins/workspace/Firebird/label/s390x/gen'
mkdir -p /home/jenkins/workspace/Firebird/label/s390x/extern/libcds/lib/Release
cd /home/jenkins/workspace/Firebird/label/s390x/extern/libcds/lib/Release; \
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS=-fPIC /home/jenkins/workspace/Firebird/label/s390x/extern/libcds
-- The C compiler identification is GNU 12.2.1
-- The CXX compiler identification is GNU 12.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Warning (dev) at CMakeLists.txt:24 (set):
  implicitly converting 'string' to 'STRING' type.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Binary output path: /home/jenkins/workspace/Firebird/label/s390x/extern/libcds/lib/Release/bin
C++ std: -std=c++11 (default)
-- Looking for C++ include linux/membarrier.h
-- Looking for C++ include linux/membarrier.h - not found
Build type -- Release
Compiler version: GNU 12.2.1
System: Linux version: 6.0.5-200.fc36.s390x
Target architecture: unknown
Compiler flags: -fPIC -O3 -DNDEBUG -std=c++11 -Wall;-Wextra;-pedantic
Exe flags: 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/jenkins/workspace/Firebird/label/s390x/extern/libcds/lib/Release
AR="ar" make -C /home/jenkins/workspace/Firebird/label/s390x/extern/libcds/lib/Release
make[5]: Entering directory '/home/jenkins/workspace/Firebird/label/s390x/extern/libcds/lib/Release'
make[6]: Entering directory '/home/jenkins/workspace/Firebird/label/s390x/extern/libcds/lib/Release'
make[7]: Entering directory '/home/jenkins/workspace/Firebird/label/s390x/extern/libcds/lib/Release'
make[7]: Leaving directory '/home/jenkins/workspace/Firebird/label/s390x/extern/libcds/lib/Release'
make[7]: Entering directory '/home/jenkins/workspace/Firebird/label/s390x/extern/libcds/lib/Release'
[  4%] Building CXX object CMakeFiles/cds.dir/src/init.cpp.o
In file included from /home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/os/alloc_aligned.h:31,
                 from /home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/user_setup/allocator.h:42,
                 from /home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/details/allocator.h:12,
                 from /home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/urcu/details/base.h:11,
                 from /home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/urcu/details/gp_decl.h:9,
                 from /home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/threading/details/_common.h:9,
                 from /home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/threading/model.h:9,
                 from /home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/os/linux/topology.h:14,
                 from /home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/os/topology.h:14,
                 from /home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/init.h:10,
                 from /home/jenkins/workspace/Firebird/label/s390x/extern/libcds/src/init.cpp:6:
/home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/algo/int_algo.h:80:28: error: redefinition of ‘uint64_t cds::beans::log2floor(uint64_t)’
   80 |     static inline uint64_t log2floor( uint64_t n )
      |                            ^~~~~~~~~
/home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/algo/int_algo.h:13:26: note: ‘size_t cds::beans::log2floor(size_t)’ previously defined here
   13 |     static inline size_t log2floor( size_t n )
      |                          ^~~~~~~~~
/home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/algo/int_algo.h:86:28: error: redefinition of ‘uint64_t cds::beans::log2ceil(uint64_t)’
   86 |     static inline uint64_t log2ceil( uint64_t n )
      |                            ^~~~~~~~
/home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/algo/int_algo.h:19:26: note: ‘size_t cds::beans::log2ceil(size_t)’ previously defined here
   19 |     static inline size_t log2ceil( size_t n )
      |                          ^~~~~~~~
/home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/algo/int_algo.h:106:28: error: redefinition of ‘uint64_t cds::beans::floor2(uint64_t)’
  106 |     static inline uint64_t floor2( uint64_t n )
      |                            ^~~~~~
/home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/algo/int_algo.h:39:26: note: ‘size_t cds::beans::floor2(size_t)’ previously defined here
   39 |     static inline size_t floor2( size_t n )
      |                          ^~~~~~
/home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/algo/int_algo.h:125:28: error: redefinition of ‘uint64_t cds::beans::ceil2(uint64_t)’
  125 |     static inline uint64_t ceil2( uint64_t n )
      |                            ^~~~~
/home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/algo/int_algo.h:58:26: note: ‘size_t cds::beans::ceil2(size_t)’ previously defined here
   58 |     static inline size_t ceil2( size_t n )
      |                          ^~~~~
/home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/algo/int_algo.h:131:34: error: redefinition of ‘constexpr bool cds::beans::is_power2(uint64_t)’
  131 |     constexpr static inline bool is_power2( uint64_t n ) noexcept
      |                                  ^~~~~~~~~
/home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/algo/int_algo.h:64:34: note: ‘constexpr bool cds::beans::is_power2(size_t)’ previously defined here
   64 |     constexpr static inline bool is_power2( size_t n ) noexcept
      |                                  ^~~~~~~~~
/home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/algo/int_algo.h:137:28: error: redefinition of ‘uint64_t cds::beans::log2(uint64_t)’
  137 |     static inline uint64_t log2( uint64_t n )
      |                            ^~~~
/home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/algo/int_algo.h:70:26: note: ‘size_t cds::beans::log2(size_t)’ previously defined here
   70 |     static inline size_t log2( size_t n )
      |                          ^~~~
/home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/urcu/details/base.h: In constructor ‘cds::urcu::epoch_retired_ptr::epoch_retired_ptr(const cds::gc::details::retired_ptr&, uint64_t)’:
/home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/urcu/details/base.h:436:36: warning: implicitly-declared ‘constexpr cds::gc::details::retired_ptr::retired_ptr(const cds::gc::details::retired_ptr&)’ is deprecated [-Wdeprecated-copy]
  436 |                 , m_nEpoch( nEpoch )
      |                                    ^
In file included from /home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/urcu/details/base.h:10:
/home/jenkins/workspace/Firebird/label/s390x/extern/libcds/cds/gc/details/retired_ptr.h:59:26: note: because ‘cds::gc::details::retired_ptr’ has user-provided ‘cds::gc::details::retired_ptr& cds::gc::details::retired_ptr::operator=(const cds::gc::details::retired_ptr&)’
   59 |             retired_ptr& operator =( retired_ptr const& s) noexcept
      |                          ^~~~~~~~
make[7]: *** [CMakeFiles/cds.dir/build.make:76: CMakeFiles/cds.dir/src/init.cpp.o] Error 1
make[7]: Leaving directory '/home/jenkins/workspace/Firebird/label/s390x/extern/libcds/lib/Release'
make[6]: *** [CMakeFiles/Makefile2:85: CMakeFiles/cds.dir/all] Error 2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions