FS#74837 - [xorg-server] libunwind isn't actually used

Attached to Project: Arch Linux
Opened by Aaron Plattner (aaronp24) - Monday, 23 May 2022, 18:57 GMT
Last edited by Andreas Radke (AndyRTR) - Monday, 23 May 2022, 20:02 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Andreas Radke (AndyRTR)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
The PKGBUILD for xorg-server lists libunwind as a dependency, but the X server's meson.build file doesn't actually enable libunwind support automatically. You have to pass -Dlibunwind=true to the arch-meson invocation to get it to actually use it:

diff --git a/xorg-server/trunk/PKGBUILD b/xorg-server/trunk/PKGBUILD
index a6098224d..967fce32c 100644
--- a/xorg-server/trunk/PKGBUILD
+++ b/xorg-server/trunk/PKGBUILD
@@ -5,7 +5,7 @@ pkgbase=xorg-server
pkgname=('xorg-server' 'xorg-server-xephyr' 'xorg-server-xvfb' 'xorg-server-xnest'
'xorg-server-common' 'xorg-server-devel')
pkgver=21.1.3
-pkgrel=6
+pkgrel=7
arch=('x86_64')
license=('custom')
groups=('xorg')
@@ -70,7 +70,8 @@ build() {
-D systemd_logind=true \
-D suid_wrapper=true \
-D xkb_dir=/usr/share/X11/xkb \
- -D xkb_output_dir=/var/lib/xkb
+ -D xkb_output_dir=/var/lib/xkb \
+ -D libunwind=true

# Print config
meson configure build



Additional info:
* package version: 21.1.3-6
* config and/or log files etc.

Here's the meson configuration from a `makepkg` run on my machine. Note that libunwind is listed as "false" even though I have libunwind installed.

Main project options:

Core options Current Value Possible Values Description
------------ ------------- --------------- -----------
auto_features enabled [enabled, disabled, auto] Override value of all 'auto' features
backend ninja [ninja, vs, vs2010, vs2012, Backend to use
vs2013, vs2015, vs2017,
vs2019,
vs2022, xcode]
buildtype plain [plain, debug, Build type to use
debugoptimized, release,
minsize, custom]
cmake_prefix_path [] List of additional prefixes for cmake to search
debug false [true, false] Debug
default_library shared [shared, static, both] Default library type
force_fallback_for [] Force fallback for those subprojects
install_umask 0022 [preserve, 0000-0777] Default umask to apply on permissions of installed files
layout mirror [mirror, flat] Build directory layout
optimization 0 [0, g, 1, 2, 3, s] Optimization level
pkg_config_path [] List of additional paths for pkg-config to search
strip false [true, false] Strip targets on install
unity off [on, off, subprojects] Unity build
unity_size 4 >=2 Unity block size
warning_level 1 [0, 1, 2, 3] Compiler warning level to use
werror false [true, false] Treat warnings as errors
wrap_mode nodownload [default, nofallback, Wrap mode
nodownload, forcefallback,
nopromote]

Backend options Current Value Possible Values Description
--------------- ------------- --------------- -----------
backend_max_links 0 >=0 Maximum number of linker processes to run or 0 for no
limit

Base options Current Value Possible Values Description
------------ ------------- --------------- -----------
b_asneeded true [true, false] Use -Wl,--as-needed when linking
b_colorout always [auto, always, never] Use colored output
b_coverage false [true, false] Enable coverage tracking.
b_lto true [true, false] Use link time optimization
b_lto_threads 0 Use multiple threads for Link Time Optimization
b_lundef true [true, false] Use -Wl,--no-undefined when linking
b_ndebug false [true, false, if-release] Disable asserts
b_pch true [true, false] Use precompiled headers
b_pgo off [off, generate, use] Use profile guided optimization
b_pie true [true, false] Build executables as position independent
b_sanitize none [none, address, thread, Code sanitizer to use
undefined, memory,
address,undefined]
b_staticpic true [true, false] Build static libraries as position independent

Compiler options Current Value Possible Values Description
---------------- ------------- --------------- -----------
c_args [-march=native, -O2, -pipe, Extra arguments passed to the c compiler
-fexceptions,
-Wp,-D_FORTIFY_SOURCE=2,
-Wformat, -Werror=format-
security, -fstack-clash-
protection, -fcf-protection,
-g, -fvar-tracking-
assignments, -ffile-prefix-m
ap=/home/aaron/git/arch/pack
ages/xorg-server/trunk/src=/
usr/src/debug]
c_link_args [-Wl,-O1,--sort-common,--as- Extra arguments passed to the c linker
needed,-z,relro,
-march=native, -O2, -pipe,
-fexceptions,
-Wp,-D_FORTIFY_SOURCE=2,
-Wformat, -Werror=format-
security, -fstack-clash-
protection, -fcf-protection,
-g, -fvar-tracking-
assignments, -ffile-prefix-m
ap=/home/aaron/git/arch/pack
ages/xorg-server/trunk/src=/
usr/src/debug]
c_std gnu99 [none, c89, c99, c11, c17, C language standard to use
c18, c2x, gnu89, gnu99,
gnu11,
gnu17, gnu18, gnu2x]

Directories Current Value Possible Values Description
----------- ------------- --------------- -----------
bindir bin Executable directory
datadir share Data file directory
includedir include Header file directory
infodir share/info Info page directory
libdir lib Library directory
libexecdir lib Library executable directory
localedir share/locale Locale data directory
localstatedir /var Localstate data directory
mandir share/man Manual page directory
prefix /usr Installation prefix
sbindir bin System executable directory
sharedstatedir /var/lib Architecture-independent data directory
sysconfdir /etc Sysconf data directory

Testing options Current Value Possible Values Description
--------------- ------------- --------------- -----------
errorlogs true [true, false] Whether to print the logs from failing tests
stdsplit true [true, false] Split stdout and stderr in test logs

Project options Current Value Possible Values Description
--------------- ------------- --------------- -----------
agp auto [true, false, auto] AGP support
apple-application-name X11 Application name
apple-applications-dir /Applications/Utilities Applications directory
builder_addr xorg@lists.freedesktop.org Builder address
builder_string Additional builder string
bundle-id-prefix org.x RDNS prefix for bundle identifier
default_font_path default_font_path
devel-docs auto [true, false, auto] Build development documentation
dga auto [true, false, auto] DGA extension
docs auto [true, false, auto] Build documentation
docs-pdf auto [true, false, auto] Whether to build PDF version of documentation. Setting is
ignored if documentation is not built.
dpms true [true, false] Xorg DPMS extension
dri1 auto [true, false, auto] Build DRI1 extension (default: auto)
dri2 auto [true, false, auto] Build DRI2 extension (default: auto)
dri3 auto [true, false, auto] Build DRI3 extension (default: auto)
drm true [true, false] Build Xorg with libdrm support
dtrace false [true, false] Enable dtrace hooks
fallback_input_driver auto fallback_input_driver
glamor true [true, false, auto] Enable glamor (default yes for Xorg builds)
glx true [true, false] glx
hal auto [true, false, auto] Enable HAL integration
input_thread auto [true, false, auto] input_thread
int10 auto [stub, x86emu, vm86, auto, Xorg int10 backend (default: usually x86emu)
false]
ipv6 true [true, false, auto] ipv6
libunwind false [true, false] Use libunwind for backtrace reporting
linux_acpi true [true, false] ACPI support on Linux
linux_apm true [true, false] APM support on Linux
listen_local true [true, false] Listen on local by default
listen_tcp false [true, false] Listen on TCP by default
listen_unix true [true, false] Listen on Unix by default
log_dir log_dir
mitshm auto [true, false, auto] SHM extension
module_dir xorg/modules X.Org modules directory (absolute or relative to the
directory specified by the libdir option)
pciaccess true [true, false] Xorg pciaccess support
screensaver true [true, false] ScreenSaver extension
secure-rpc true [true, false] secure-rpc
sha1 auto [libc, CommonCrypto, SHA1 implementation
CryptoAPI, libmd, libsha1,
libnettle,
libgcrypt, libcrypto, auto]
sparkle-feed-url Feed URL for autoupdating with the Sparkle Framework
(default: disabled)
suid_wrapper true [true, false] SUID wrapper for legacy driver support
systemd_logind true [true, false, auto] Enable systemd-logind integration
udev true [true, false] udev
udev_kms true [true, false] udev_kms
vendor_name The X.Org Foundation vendor_name
vendor_name_short X.Org vendor_name_short
vendor_web http://wiki.x.org vendor_web
vgahw auto [true, false, auto] Xorg VGA access module
xace true [true, false] X-ACE extension
xcsecurity true [true, false] Security extension
xdm-auth-1 true [true, false] xdm-auth-1
xdmcp true [true, false] xdmcp
xephyr true [true, false] Enable Xephyr nested X server
xf86-input-inputtest true [true, false] Test input driver support on Xorg
xf86bigfont false [true, false] XF86 Big Font extension
xinerama true [true, false] Xinerama extension
xkb_bin_dir xkb_bin_dir
xkb_default_layout us xkb_default_layout
xkb_default_model pc105 xkb_default_model
xkb_default_options xkb_default_options
xkb_default_rules evdev xkb_default_rules
xkb_default_variant xkb_default_variant
xkb_dir /usr/share/X11/xkb xkb_dir
xkb_output_dir /var/lib/xkb xkb_output_dir
xnest true [true, false, auto] Enable Xnest nested X server
xorg true [true, false, auto] Enable Xorg X Server
xpbproxy false [true, false] Build a standalone X pasteboard proxy
xquartz auto [true, false, auto] Enable Xquartz X server
xres true [true, false] XRes extension
xselinux auto [true, false, auto] XSELINUX extension
xv true [true, false] Xv extension
xvfb true [true, false] Enable Xvfb X server
xvmc true [true, false] XvMC extension
xwin auto [true, false, auto] Enable XWin X server
This task depends upon

Closed by  Andreas Radke (AndyRTR)
Monday, 23 May 2022, 20:02 GMT
Reason for closing:  Fixed
Additional comments about closing:  21.1.3-7 - thanks!
Comment by Aaron Plattner (aaronp24) - Monday, 23 May 2022, 18:59 GMT
See also https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/677 -- I'm pushing for better crash dumps from Xorg and this merge request depends on libunwind.

Loading...