Project

General

Profile

Actions

Bug #58562

closed

windows build needs a newer compiler for c++20

Added by Ilya Dryomov about 1 year ago. Updated about 1 year ago.

Status:
Resolved
Priority:
Normal
Assignee:
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

Finished building Ceph dependencies.
Generating solution. Log: /mnt/ceph/build/cmake.log
-- The CXX compiler identification is GNU 9.3.0
-- The C compiler identification is GNU 9.3.0
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/x86_64-w64-mingw32-gcc-posix
-- Check for working CXX compiler: /usr/bin/x86_64-w64-mingw32-g++-posix
-- Check for working CXX compiler: /usr/bin/x86_64-w64-mingw32-g++-posix -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler: /usr/bin/x86_64-w64-mingw32-gcc-posix
-- Check for working C compiler: /usr/bin/x86_64-w64-mingw32-gcc-posix -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Looking for memset_s
-- Looking for memset_s - not found
-- Looking for fallocate
-- Looking for fallocate - not found
-- Looking for posix_fadvise
-- Looking for posix_fadvise - not found
-- Looking for posix_fallocate
-- Looking for posix_fallocate - not found
-- Looking for syncfs
-- Looking for syncfs - not found
-- Looking for sync_file_range
-- Looking for sync_file_range - not found
-- Looking for pwritev
-- Looking for pwritev - not found
-- Looking for splice
-- Looking for splice - not found
-- Looking for getgrouplist
-- Looking for getgrouplist - not found
-- Looking for fdatasync
-- Looking for fdatasync - not found
-- Looking for strerror_r
-- Looking for strerror_r - not found
-- Looking for name_to_handle_at
-- Looking for name_to_handle_at - not found
-- Looking for pipe2
-- Looking for pipe2 - not found
-- Looking for accept4
-- Looking for accept4 - not found
-- Looking for sigdescr_np
-- Looking for sigdescr_np - not found
-- Looking for pthread_spin_init
-- Looking for pthread_spin_init - found
-- Looking for pthread_set_name_np
-- Looking for pthread_set_name_np - not found
-- Looking for pthread_get_name_np
-- Looking for pthread_get_name_np - not found
-- Looking for pthread_setname_np
-- Looking for pthread_setname_np - found
-- Looking for pthread_getname_np
-- Looking for pthread_getname_np - found
-- Looking for pthread_rwlockattr_setkind_np
-- Looking for pthread_rwlockattr_setkind_np - not found
-- Looking for eventfd
-- Looking for eventfd - not found
-- Looking for getprogname
-- Looking for getprogname - not found
-- Looking for gettid
-- Looking for gettid - not found
-- Looking for include file linux/types.h
-- Looking for include file linux/types.h - not found
-- Looking for include file linux/version.h
-- Looking for include file linux/version.h - not found
-- Looking for include file arpa/nameser_compat.h
-- Looking for include file arpa/nameser_compat.h - not found
-- Looking for include file sys/mount.h
-- Looking for include file sys/mount.h - not found
-- Looking for include file sys/param.h
-- Looking for include file sys/param.h - found
-- Looking for include file sys/types.h
-- Looking for include file sys/types.h - found
-- Looking for include file sys/vfs.h
-- Looking for include file sys/vfs.h - not found
-- Looking for include file sys/prctl.h
-- Looking for include file sys/prctl.h - not found
-- Looking for include file execinfo.h
-- Looking for include file execinfo.h - not found
-- Looking for include file valgrind/helgrind.h
-- Looking for include file valgrind/helgrind.h - not found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of __u8
-- Check size of __u8 - failed
-- Check size of __u16
-- Check size of __u16 - failed
-- Check size of __u32
-- Check size of __u32 - failed
-- Check size of __u64
-- Check size of __u64 - failed
-- Check size of __s8
-- Check size of __s8 - failed
-- Check size of __s16
-- Check size of __s16 - failed
-- Check size of __s32
-- Check size of __s32 - failed
-- Check size of __s64
-- Check size of __s64 - failed
-- Check size of in_addr_t
-- Check size of in_addr_t - failed
-- Looking for _POSIX_TIMERS
-- Looking for _POSIX_TIMERS - not found
-- Looking for res_nquery
-- Looking for res_nquery - not found
-- Looking for F_SETPIPE_SZ
-- Looking for F_SETPIPE_SZ - not found
-- Looking for __func__
-- Looking for __func__ - found
-- Looking for __PRETTY_FUNCTION__
-- Looking for __PRETTY_FUNCTION__ - found
-- Looking for getentropy
-- Looking for getentropy - not found
-- Performing Test STRERROR_R_CHAR_P
-- Performing Test STRERROR_R_CHAR_P - Failed
-- Performing Test HAVE_STAT_ST_MTIM_TV_NSEC
-- Performing Test HAVE_STAT_ST_MTIM_TV_NSEC - Failed
-- Performing Test HAVE_STAT_ST_MTIMESPEC_TV_NSEC
-- Performing Test HAVE_STAT_ST_MTIMESPEC_TV_NSEC - Failed
-- Assuming unaligned access is supported
-- Performing Test HAVE_ATTR_SYMVER
-- Performing Test HAVE_ATTR_SYMVER - Failed
-- Performing Test HAVE_ASM_SYMVER
-- Performing Test HAVE_ASM_SYMVER - Failed
-- Performing Test HAVE_CXX11_ATOMIC
-- Performing Test HAVE_CXX11_ATOMIC - Failed
-- Performing Test HAVE_LIBATOMIC
-- Performing Test HAVE_LIBATOMIC - Success
-- Found Backtrace: /mnt/ceph/build.deps/mingw/libbacktrace/lib/libbacktrace.a  
-- Found snappy: /mnt/ceph/build.deps/mingw/snappy/lib/libsnappy.dll.a  
-- Found LZ4: /mnt/ceph/build.deps/mingw/lz4/lib/dll/liblz4-1.dll (found suitable version "1.9.2", minimum required is "1.7") 
-- Found OpenSSL: /mnt/ceph/build.deps/mingw/openssl/lib/libcrypto.dll.a (found version "1.1.1c")  
-- Found ZLIB: /mnt/ceph/build.deps/mingw/zlib/lib/libz.dll.a (found version "1.2.13") 
-- Found Boost: /mnt/ceph/build.deps/mingw/boost/lib/cmake/Boost-1.79.0/BoostConfig.cmake (found suitable version "1.79.0", minimum required is "1.79") found components: atomic chrono thread system regex random program_options date_time iostreams context coroutine 
-- Found Threads: TRUE  
-- Found StdFilesystem: included by standard library  
-- Ceph/.git directory not found, parsing /mnt/ceph/src/.git_version for CEPH_GIT_VER and CEPH_GIT_NICE_VER
-- Performing Test COMPILER_SUPPORTS_PESSIMIZING_MOVE
-- Performing Test COMPILER_SUPPORTS_PESSIMIZING_MOVE - Success
-- Performing Test COMPILER_SUPPORTS_REDUNDANT_MOVE
-- Performing Test COMPILER_SUPPORTS_REDUNDANT_MOVE - Success
CMake Error at src/CMakeLists.txt:126 (message):
  C++20 support requires a minimum GCC version of 10.

https://jenkins.ceph.com/job/ceph-dev-new-build/ARCH=x86_64,AVAILABLE_ARCH=x86_64,AVAILABLE_DIST=windows,DIST=windows,MACHINE_SIZE=gigantic/67572/console

Actions #1

Updated by Ilya Dryomov about 1 year ago

Hi Lucian,

Is this something you can look at?

Actions #2

Updated by Lucian Petrut about 1 year ago

Ilya Dryomov wrote:

Hi Lucian,

Is this something you can look at?

Hi,

Ubuntu 22.04 provides mingw 8 / gcc 10, which has c++ 20 support.

Actions #3

Updated by Ilya Dryomov about 1 year ago

Lucian Petrut wrote:

Ubuntu 22.04 provides mingw 8 / gcc 10, which has c++ 20 support.

But the Windows build is picking up gcc 9.3:

-- The CXX compiler identification is GNU 9.3.0
-- The C compiler identification is GNU 9.3.0

Any idea what needs to be tweaked there?

Actions #4

Updated by Lucian Petrut about 1 year ago

Ilya Dryomov wrote:

Lucian Petrut wrote:

Ubuntu 22.04 provides mingw 8 / gcc 10, which has c++ 20 support.

But the Windows build is picking up gcc 9.3:

[...]

Any idea what needs to be tweaked there?

Do you have a link for a failed job? As far as I know, Windows builds were supposed to run on Ubuntu Jammy (22.04) Jenkins slaves.

Most recent jobs have passed and it's using the expected mingw version:

https://jenkins.ceph.com/job/ceph-windows-pull-requests/18706/consoleFull
-- The C compiler identification is GNU 10.0.0
-- The CXX compiler identification is GNU 10.0.0

Looks like the fio test fails on quincy though, most probably we'll have to bump that 5m timeout:

timeout 5m ssh -i ** -o UserKnownHostsFile=/home/jenkins-build/build/workspace/ceph-windows-pull-requests/libvirt/known_hosts python.exe /workspace/test_rbd_wnbd.py --test-name RbdFioTest --iterations 100

Actions #5

Updated by Ilya Dryomov about 1 year ago

Lucian Petrut wrote:

Do you have a link for a failed job? As far as I know, Windows builds were supposed to run on Ubuntu Jammy (22.04) Jenkins slaves.

Yes, it's linked in the description:

https://jenkins.ceph.com/job/ceph-dev-new-build/ARCH=x86_64,AVAILABLE_ARCH=x86_64,AVAILABLE_DIST=windows,DIST=windows,MACHINE_SIZE=gigantic/67572/console

It's a different job, not the one that is triggered on PRs.

Actions #6

Updated by Ilya Dryomov about 1 year ago

Lucian Petrut wrote:

Looks like the fio test fails on quincy though, most probably we'll have to bump that 5m timeout:

I don't think we backported any of the test harness tweaks to quincy. Isn't it pretty much expected to fail?

Actions #7

Updated by Lucian Petrut about 1 year ago

Ilya Dryomov wrote:

Yes, it's linked in the description:

https://jenkins.ceph.com/job/ceph-dev-new-build/ARCH=x86_64,AVAILABLE_ARCH=x86_64,AVAILABLE_DIST=windows,DIST=windows,MACHINE_SIZE=gigantic/67572/console

It's a different job, not the one that is triggered on PRs.

My bad, sorry for missing the link from the description. I'll need to check on how the jenkins slaves were filtered.

Actions #8

Updated by Lucian Petrut about 1 year ago

Ilya Dryomov wrote:

Lucian Petrut wrote:

Looks like the fio test fails on quincy though, most probably we'll have to bump that 5m timeout:

I don't think we backported any of the test harness tweaks to quincy. Isn't it pretty much expected to fail?

it's fetching the test script if missing, running each individual test with a 5m timeout:

https://github.com/ceph/ceph-build/blob/main/scripts/ceph-windows/run_tests#L71-L83

I'll send a patch to increase that timeout.

LE: https://github.com/ceph/ceph-build/pull/2100/files

Actions #9

Updated by Ilya Dryomov about 1 year ago

Lucian Petrut wrote:

My bad, sorry for missing the link from the description. I'll need to check on how the jenkins slaves were filtered.

FWIW it appears to start out with Ubuntu 22.04 as expected. From the linked job:

+ source /etc/os-release
++ PRETTY_NAME='Ubuntu 22.04.1 LTS'
++ NAME=Ubuntu
++ VERSION_ID=22.04
++ VERSION='22.04.1 LTS (Jammy Jellyfish)'
++ VERSION_CODENAME=jammy
Actions #10

Updated by Lucian Petrut about 1 year ago

Ilya Dryomov wrote:

Lucian Petrut wrote:

My bad, sorry for missing the link from the description. I'll need to check on how the jenkins slaves were filtered.

FWIW it appears to start out with Ubuntu 22.04 as expected. From the linked job:

[...]

Found the issue. The host is running ubuntu 22.04, however the job is using pbuilder with focal (22.04): https://github.com/ceph/ceph-build/blob/c092644ec45e75258a624c2895227127fa3b354b/ceph-dev-new-build/build/build_mingw#L18-L22

I'll submit a PR for bumping the pbuilder version.

Actions #11

Updated by Ilya Dryomov about 1 year ago

  • Status changed from New to In Progress
  • Assignee set to Lucian Petrut
Actions #12

Updated by Lucian Petrut about 1 year ago

  • Pull request ID set to 2101
Actions #14

Updated by Ilya Dryomov about 1 year ago

  • Project changed from devops to CI
  • Status changed from In Progress to Fix Under Review
  • Pull request ID deleted (2101)
Actions

Also available in: Atom PDF