Skip to content

cmake: enforce gcc-10 for win32 port#47594

Merged
tchaikov merged 1 commit into
ceph:mainfrom
tchaikov:wip-cmake-win32
Aug 16, 2022
Merged

cmake: enforce gcc-10 for win32 port#47594
tchaikov merged 1 commit into
ceph:mainfrom
tchaikov:wip-cmake-win32

Conversation

@tchaikov
Copy link
Copy Markdown
Contributor

we only have GCC-10 targeting MinGW at the time of writing, and it
is good enough for compiling the Winows port.

so let's relax the requirement to enable the windows build.

Signed-off-by: Kefu Chai tchaikov@gmail.com

Contribution Guidelines

Checklist

  • Tracker (select at least one)
    • References tracker ticket
    • Very recent bug; references commit where it was introduced
    • New feature (ticket optional)
    • Doc update (no ticket needed)
    • Code cleanup (no ticket needed)
  • Component impact
    • Affects Dashboard, opened tracker ticket
    • Affects Orchestrator, opened tracker ticket
    • No impact that needs to be tracked
  • Documentation (select at least one)
    • Updates relevant documentation
    • No doc update is appropriate
  • Tests (select at least one)
Show available Jenkins commands
  • jenkins retest this please
  • jenkins test classic perf
  • jenkins test crimson perf
  • jenkins test signed
  • jenkins test make check
  • jenkins test make check arm64
  • jenkins test submodules
  • jenkins test dashboard
  • jenkins test dashboard cephadm
  • jenkins test api
  • jenkins test docs
  • jenkins render docs
  • jenkins test ceph-volume all
  • jenkins test ceph-volume tox
  • jenkins test windows

we only have GCC-10 targeting MinGW at the time of writing, and it
is good enough for compiling the Winows port.

so let's relax the requirement to enable the windows build.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
@tchaikov tchaikov requested a review from cbodley August 15, 2022 07:25
@tchaikov tchaikov added the win32 Specifix changes for the windows platform label Aug 15, 2022
@tchaikov
Copy link
Copy Markdown
Contributor Author

jenkins test make check

@tchaikov
Copy link
Copy Markdown
Contributor Author

jenkins test api

@tchaikov
Copy link
Copy Markdown
Contributor Author

jsonnet-lint installdeps: -rrequirements-grafonnet.txt
WARNING: Discarding $PYTHONPATH from environment, to override specify PYTHONPATH in 'passenv' in your configuration.
jsonnet-lint installed: jsondiff==2.0.0
jsonnet-lint run-test-pre: PYTHONHASHSEED='1986849639'
jsonnet-lint run-test: commands[0] | ./lint-jsonnet.sh --test
/home/jenkins-build/build/workspace/ceph-pull-requests/monitoring/ceph-mixin/lint-jsonnet.sh: 5: jsonnetfmt: not found
ERROR: InvocationError for command /home/jenkins-build/build/workspace/ceph-pull-requests/monitoring/ceph-mixin/lint-jsonnet.sh --test (exited with code 127)
___________________________________ summary ____________________________________
ERROR:   jsonnet-lint: commands failed

@tchaikov
Copy link
Copy Markdown
Contributor Author

jenkins test make check

2 similar comments
@tchaikov
Copy link
Copy Markdown
Contributor Author

jenkins test make check

@tchaikov
Copy link
Copy Markdown
Contributor Author

jenkins test make check

@tchaikov tchaikov merged commit 7e309f3 into ceph:main Aug 16, 2022
@tchaikov tchaikov deleted the wip-cmake-win32 branch August 16, 2022 01:45
@petrutlucian94
Copy link
Copy Markdown
Contributor

Thanks, this buys us some time. I see that one of the tests keeps failing, we'll take a look:

[2022-08-15T07:44:30.000Z] [googletest] unittest_crush.exe failed. Error: Command returned non-zero code(1): "cmd /c 'C:\ceph\unittest_crush.exe --gtest_output=xml:C:\workspace\test_results\unittest_crush_results.xml  > C:\workspace\test_results\unittest_crush_results.log 2>&1'".

@djgalloway
Copy link
Copy Markdown
Contributor

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

CMake Error at src/CMakeLists.txt:126 (message):
  C++20 support requires a minimum GCC version of 10.

Yet

$ ssh braggi13 gcc --version
gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0

@cbodley
Copy link
Copy Markdown
Contributor

cbodley commented Aug 31, 2022

the cmake output show that it selected 9.3

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

@cbodley
Copy link
Copy Markdown
Contributor

cbodley commented Aug 31, 2022

it's using these binaries:

-- 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
-- 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

@djgalloway
Copy link
Copy Markdown
Contributor

djgalloway commented Aug 31, 2022

Ah, you're right. ceph/ceph-build#2067

(This also tells me we didn't need to update the Jenkins builders to Jammy 😞)

@tchaikov
Copy link
Copy Markdown
Contributor Author

why? i did spot FTBFS of windows build on ubuntu focal.

@djgalloway
Copy link
Copy Markdown
Contributor

I don't know. I thought I remember @petrutlucian94 or @ionutbalutoiu asking me to switch Windows builds to Jammy builders specifically because of a newer something version.

ceph/ceph-build#2067 does get builds going again but it's failing now due to a compiler error.

In file included from /mnt/ceph/src/include/encoding.h:41,
                 from /mnt/ceph/src/include/uuid.h:9,
                 from /mnt/ceph/src/include/types.h:21,
                 from /mnt/ceph/src/msg/Message.cc:11:
/mnt/ceph/src/include/denc.h: In function 'void denc_signed_varint_lowz(int64_t, It&)':
/mnt/ceph/src/include/denc.h:517:49: error: 'bit_cast' is not a member of 'std'; did you mean 'bad_cast'?
  517 |   unsigned lowznib = v ? (std::countr_zero(std::bit_cast<uint64_t>(v)) / 4) : 0u;
      |                                                 ^~~~~~~~
      |                                                 bad_cast
/mnt/ceph/src/include/denc.h:517:66: error: expected primary-expression before '>' token
  517 |   unsigned lowznib = v ? (std::countr_zero(std::bit_cast<uint64_t>(v)) / 4) : 0u;
      |                                                                  ^
ninja: build stopped: subcommand failed.

@petrutlucian94
Copy link
Copy Markdown
Contributor

@djgalloway right, the issue was that ubuntu 20.04 only provides mingw gcc 9.3

x86_64-w64-mingw32-gcc --version

x86_64-w64-mingw32-gcc (GCC) 9.3-win32 20200320

Now we have some failing tests that are addressed by this PR: #47818. The windows job completed successfully there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build/ops win32 Specifix changes for the windows platform

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants