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

Mir fails to build with Wayland master, and cmake v3.22.0, linking with wl_proxy_marshal_flags #2261

Closed
n3rdopolis opened this issue Dec 18, 2021 · 3 comments · Fixed by #2562

Comments

@n3rdopolis
Copy link
Contributor

It oddly builds with v3.20.0
wl_proxy_marshal_flags in Wayland Master caused problems building some other things, but it's odd that this seems to happen with a new version of cmake.

Below is the error output I get
[100%] Linking CXX executable ../../bin/miral-kiosk.bin
/usr/bin/ld: ../example-server-lib/libexample-shell-lib.a(wayland_shm.cpp.o): in function WaylandShmBuffer::~WaylandShmBuffer()': /opt/include/wayland-client-protocol.h:2017: undefined reference to wl_proxy_marshal_flags'
/usr/bin/ld: ../example-server-lib/libexample-shell-lib.a(wayland_shm.cpp.o): in function WaylandShm::get_buffer(mir::geometry::Size, mir::geometry::detail::IntWrapper<mir::geometry::StrideTag>)': /opt/include/wayland-client-protocol.h:1932: undefined reference to wl_proxy_marshal_flags'
/usr/bin/ld: /opt/include/wayland-client-protocol.h:1371: undefined reference to wl_proxy_marshal_flags' /usr/bin/ld: ../example-server-lib/libexample-shell-lib.a(wayland_shm.cpp.o): in function std::_Sp_counted_ptr_inplace<WaylandShmPool, std::allocator, (__gnu_cxx::_Lock_policy)2>::_M_dispose()':
/opt/include/wayland-client-protocol.h:1389: undefined reference to wl_proxy_marshal_flags' /usr/bin/ld: ../example-server-lib/libexample-shell-lib.a(sw_splash.cpp.o): in function SwSplash::Self::operator()(wl_display*)':
/opt/include/wayland-client-protocol.h:1038: undefined reference to wl_proxy_marshal_flags' /usr/bin/ld: ../example-server-lib/libexample-shell-lib.a(wayland_app.cpp.o):/opt/include/wayland-client-protocol.h:1175: more undefined references to wl_proxy_marshal_flags' follow
collect2: error: ld returned 1 exit status
make[2]: *** [examples/miral-kiosk/CMakeFiles/miral-kiosk.dir/build.make:124: bin/miral-kiosk.bin] Error 1
make[1]: *** [CMakeFiles/Makefile2:3375: examples/miral-kiosk/CMakeFiles/miral-kiosk.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[100%] Linking CXX static library libmiral-spinner.a
[100%] Linking CXX executable ../../bin/mir_demo_server.bin
[100%] Built target miral-spinner
[100%] Built target mir_demo_server
make: *** [Makefile:146: all] Error 2
nerdopolis@nerdopolis:~$

@n3rdopolis
Copy link
Contributor Author

I tested with cmake 3.21.0 and that worked, so it could be a cmake regression in 3.22

@AlanGriffiths
Copy link
Contributor

CNR: cmake 3.22.1 has been and is working fine on 22.04. (Not tried 3.22.0, but unlikely to be a Mir problem.)

@n3rdopolis
Copy link
Contributor Author

Still happening with v3.22.0 since now KDE needs CMake 3.22
Be sure to use the newest libwayland I think the issue must be combined with the CMake version and a change in libwayland, other things around this time had problems with wl_proxy_marshal_flags that were later fixed

bors bot added a commit that referenced this issue Aug 30, 2022
2562: Release 2.9.0 r=AlanGriffiths a=AlanGriffiths

## ABI summary:
* miral ABI bumped to 5
* mircommon ABI unchanged at 9
* mircookie ABI unchanged at 2
* mircore ABI bumped to 2
* miroil ABI bumped to 2
* mirplatform ABI unchanged at 23
* mirserver ABI unchanged at 58
* mirwayland ABI unchanged at 3
* mirplatformgraphics ABI unchanged at 20
* mirinputplatform ABI unchanged at 8
## Enhancements:
* [Wayland] Implement zwp_idle_inhibit_manager_v1
* [Wayland] Implement zwlr_virtual_pointer_v1
* [Wayland] Implement zwp_text_input_manager_v1 (Electron works with OSK)
* [Wayland] Bump wl_seat to v8 and implement hi-res scrolling (Fixes: #2176, Fixes: #2499)
* [Wayland platform] improve failed to connect error
* [Wayland platform] Port to xdg-shell (Fixes #1903, Fixes: #2434)
* [MirAL] Allow `--add-wayland-extenions all`
* [MirAL] Allow servers to get repeated string options
* [MirAL] Improvement to ExternalClientLauncher: Don't force clients to split command lines themselves
* [MirAL] Tidy up event filtering API
* [MirAL] Expose miral::Zone::id()
* [Input] Filter 2 distinct bogus touch event scenarios (UBports)
* [gbm-kms] new driver quirk to disable KMS modeset probe
* [gbm-kms] Add defaults to driver-quirks for nvidia and evdi (Fixes: #2467)
* [gbm-kms] Add defaults to driver-quirks for vc4-drm and v3d
* [mir-smoke-test-runner] Enable working in a Wayland only environment
## Bugs fixed:
* Fix ABI breakage of libmircore.so.1 with v2.8.0 vs v1.8.2 (Fixes #2465)
* [Wayland] Text Input v2: do not use commit count as serial
* [Wayland] Send keyboard modifiers after keyboard enter (Fixes: #2535, Fixes: #2025)
* [Wayland] wlr-screencopy-v1: send .damage event as required (wayvnc fix)
* [Wayland] wlr-screencopy-v1: Waits until the copy area has been damaged in `.copy_with_damage` request (wayvnc fix)
* [MirAL] Unblock signals before execing child processes (Fixes: #1284)
* [eglstream-kms] Kill clients, not Mir, when they submit bad EGLStreams (Fixes: #2061)
* [eglstream-kms] Handle EGL errors in devnum_for_device (Fixes: #2426)
* [test clients] Explicitly ask for a GLESv2 context (Fixes: #2440)
* [renderers/gl] Clear framebuffer to opaque black (Fixes: #2427)
* CMake cleanup for locally built dependencies (Fixes: #2507, Fixes: #2261)
* Fix event timestamps (Fixes: #2577)

Co-authored-by: Alan Griffiths <alan@octopull.co.uk>
Co-authored-by: bors[bot] <26634292+bors[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants