FS#78286 - [meson] arch-meson doesn't honor options=(!lto)

Attached to Project: Arch Linux
Opened by Lone_Wolf (Lone_Wolf) - Saturday, 22 April 2023, 14:30 GMT
Last edited by Buggy McBugFace (bugbot) - Saturday, 25 November 2023, 20:18 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Jan Alexander Steffens (heftig)
Levente Polyak (anthraxx)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

meson 1.0.1-1

During troubleshooting build issues with AUR mesa-git & directx-headers-git I realised that a setting in arch-meson was causing the build issues.

The problem setting is this line in the arch-meson script :
-D b_lto=true \

This forces building with LTO enabled. using the !lto flag in options= array has no effect on this .
Only changing the build flags with export CXXFLAGS="$CXXFLAGS -fno-lto" to forefully block lto works.

Reproduce :
Comment the CXXFLAGS line in directx-headers pacakge, add option=(!lto) . build directx-headers using devtools and study the build() log .
Notice that lto is NOT disabled .

Please deprecate the arch-meson script and remove it from meson package after a transition period . If that is not possible, remove the b_lto=true line from it.





Additional info:
* package version(s)
* config and/or log files etc.
* link to upstream bug report, if any

Steps to reproduce:
This task depends upon

Closed by  Buggy McBugFace (bugbot)
Saturday, 25 November 2023, 20:18 GMT
Reason for closing:  Moved
Additional comments about closing:  https://gitlab.archlinux.org/archlinux/p ackaging/packages/meson/issues/1
Comment by Toolybird (Toolybird) - Saturday, 22 April 2023, 21:36 GMT
> deprecate the arch-meson script and remove it from meson package

Sorry, cannot see that happening. It's been a part of the packaging guidelines [1] for a long time now.

> remove the b_lto=true line

Again, cannot see it happening. The fact the wrapper script doesn't respect makepkg directives is expected. You've done the right thing during troubleshooting to identify the cause of the issues. I would just account for it and move on. Though, the PM's might see it differently and/or have something to add...

Edit: See also  FS#67612 

[1] https://wiki.archlinux.org/title/Meson_package_guidelines#Using_arch-meson_wrapper_script
Comment by Allan McRae (Allan) - Saturday, 22 April 2023, 22:45 GMT
Removing 'b_list=true' should not affect packages that want LTO given devtools/makepkg adds those flags to CFLAGS by default now. But it would allow the 'options=(!lto)' to work.
Comment by Toolybird (Toolybird) - Saturday, 22 April 2023, 23:01 GMT
> given devtools/makepkg adds those flags to CFLAGS by default now

Ahh, that's an excellent point. Things have changed since the wrapper was invented..

Loading...