Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: switch back to meson-0.56.2 #18590

Merged
merged 1 commit into from
Feb 15, 2021
Merged

ci: switch back to meson-0.56.2 #18590

merged 1 commit into from
Feb 15, 2021

Conversation

evverx
Copy link
Member

@evverx evverx commented Feb 15, 2021

It seems there is another meson (0.57.0) regression preventing clang from
building systemd with --optimization=3 -Db_lto=true

By analogy with google/oss-fuzz#5199 let's just switch
to 0.56.2 for the time being

It seems there is another meson (0.57.0) regression preventing clang from
building systemd with --optimization=3 -Db_lto=true

By analogy with google/oss-fuzz#5199 let's just switch
to 0.56.2 for the time being
@evverx evverx added ci priority Stuff that should enter master quickly, since it fixes a major bug, unbreaks CI or stalls other work labels Feb 15, 2021
@eli-schwartz
Copy link
Contributor

eli-schwartz commented Feb 15, 2021

-Db_lto_threads=-1 disables the newly added LTO parallelization again (without completely dropping the current meson release!).

Also, the root of your problem is using -Wunused-command-line-argument in combination with -Werror. Not even sure what the point of -Wunused-command-line-argument is...

@yuwata
Copy link
Member

yuwata commented Feb 15, 2021

CIFuzz/Fuzzing series are still failed... But clang tests are now green. Merging.

@yuwata yuwata merged commit c39e362 into systemd:main Feb 15, 2021
@evverx evverx deleted the meson-stopgap branch February 15, 2021 06:55
@mrc0mmand
Copy link
Member

It seems there is another meson (0.57.0) regression preventing clang from
building systemd with --optimization=3 -Db_lto=true

By analogy with google/oss-fuzz#5199 let's just switch
to 0.56.2 for the time being

Thanks for tracking this down, noticed the same issue in today's Arch Linux image update (with meson 0.57.0). I guess I'll have to pin the version there as well for the time being.

@evverx
Copy link
Member Author

evverx commented Feb 15, 2021

CIFuzz/Fuzzing series are still failed..

Looks like google/oss-fuzz#5199 wasn't merged at the time. Now that it's there, CIFuzz should be green.

I guess I'll have to pin the version there as well for the time being.

@mrc0mmand given that meson is pinned one way or another everywhere, I think another option would be to pass -Db_lto_threads=-1 (as @eli-schwartz suggested) to make sure systemd is more or less covered with the latest meson release (to make sure it can be built with it at least). (Though I haven't tried that so I'm not sure whether it works or not)

@mrc0mmand
Copy link
Member

@mrc0mmand given that meson is pinned one way or another everywhere, I think another option would be to pass -Db_lto_threads=-1 (as @eli-schwartz suggested) to make sure systemd is more or less covered with the latest meson release (to make sure it can be built with it at least). (Though I haven't tried that so I'm not sure whether it works or not)

Good point, I'll check if it's enough to keep the latest meson running there.

@mrc0mmand
Copy link
Member

@evverx after a closer look the issue is somewhere else (in CentOS CI's case):

0.56.2

# meson build -Dc_args='-fno-omit-frame-pointer -ftrapv'
...
# cat meson-logs/meson-log.txt
Main binary: /usr/bin/python
Build Options: '-Dc_args=-fno-omit-frame-pointer -ftrapv'
Python system: Linux
The Meson build system
Version: 0.56.2
Source dir: /root/systemd
Build dir: /root/systemd/build
Build type: native build
Project name: systemd
Project version: 247
None of 'CC' are defined in the environment, not changing global flags.
None of 'CFLAGS' are defined in the environment, not changing global flags.
None of 'LDFLAGS' are defined in the environment, not changing global flags.
None of 'CPPFLAGS' are defined in the environment, not changing global flags.
None of 'CC_LD' are defined in the environment, not changing global flags.
Sanity testing C compiler: cc
Is cross compiler: False.
None of 'CC_LD' are defined in the environment, not changing global flags.
Sanity check compiler command line: cc /root/systemd/build/meson-private/sanitycheckc.c -o /root/systemd/build/meson-private/sanitycheckc.exe -fno-omit-frame-pointer -ftrapv -pipe -D_FILE_OFFSET_BITS=64
Sanity check compile stdout:

-----
Sanity check compile stderr:

-----

0.57.0

# meson build -Dc_args='-fno-omit-frame-pointer -ftrapv'
The Meson build system
Version: 0.57.0
Source dir: /root/systemd
Build dir: /root/systemd/build
Build type: native build
Project name: systemd
Project version: 247

meson.build:3:0: ERROR: Compiler cc can not compile programs.

A full log can be found at /root/systemd/build/meson-logs/meson-log.txt
# cat /root/systemd/build/meson-logs/meson-log.txt
Build started at 2021-02-15T09:02:54.024466
Main binary: /usr/bin/python
Build Options: '-Dc_args=-fno-omit-frame-pointer -ftrapv'
Python system: Linux
The Meson build system
Version: 0.57.0
Source dir: /root/systemd
Build dir: /root/systemd/build
Build type: native build
Project name: systemd
Project version: 247
Sanity testing C compiler: cc
Is cross compiler: False.
Sanity check compiler command line: cc /root/systemd/build/meson-private/sanitycheckc.c -o /root/systemd/build/meson-private/sanitycheckc.exe -fno-omit-frame-pointer -ftrapv -pipe -D_FILE_OFFSET_BITS=64 -fno-omit-frame-pointer -ftrapv
Sanity check compile stdout:

-----
Sanity check compile stderr:
cc: error: unrecognized command-line option ‘-fno-omit-frame-pointer -ftrapv’; did you mean ‘-fno-omit-frame-pointer’?

-----

meson.build:3:0: ERROR: Compiler cc can not compile programs.

@evverx
Copy link
Member Author

evverx commented Feb 15, 2021

Looks like another meson regression. It would be great if you could report it :-) I'm not sure why it hasn't been caught by GHActions. Could it be that gcc on CentOS is much older than the one in the "build" test?

@mrc0mmand
Copy link
Member

mrc0mmand commented Feb 15, 2021

Looks like another meson regression. It would be great if you could report it :-)

Will do.

I'm not sure why it hasn't been caught by GHActions. Could it be that gcc on CentOS is much older than the one in the "build" test?

This was in the Arch Linux job with gcc (GCC) 10.2.0. The issue is that the build test in GH Actions doesn't use -Dc_args=, which triggers the regression.

@evverx
Copy link
Member Author

evverx commented Feb 15, 2021

@mrc0mmand thanks!

This was in the Arch Linux job with gcc (GCC) 10.2.0

I seem to have forgotten that CentOS CI is actually CentOS on steroids :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci priority Stuff that should enter master quickly, since it fixes a major bug, unbreaks CI or stalls other work
Development

Successfully merging this pull request may close these issues.

4 participants