Skip to content

Get rid of unresolved symbols during build

Pekka Paalanen requested to merge pq/weston:mr/libexec-weston into master

Weston project has unresolved symbols allowed during the build, and that can hide real bugs. You'd know only at runtime if all your necessary symbols were resolved or not.

It is better to fail as early as possible, so reorganize things to allow unresolved symbols to be a build error.

The major category of unresolved symbols is symbols exported by weston the executable and used by Weston plugins. This is taken care of by turning the contents of weston into a libexec-weston.so that the plugins will then link to. A new weston executable is a just a trivial call into the real main() in libexec-weston.so.

There are also other cases that are either fixed or worked around (created issues #262 (closed) and #263 (closed)).

The final patch turns the project-wide option b_lundef to true, meaning that unresolved symbols will cause build failures. However, this will not automatically apply to existing Meson build directories. For existing build directories users are required to manually run

meson configure -Db_lundef=true

Depends on: !281 (merged)

Edited by Pekka Paalanen

Merge request reports