Get rid of unresolved symbols during build
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)