intel / ozone-wayland

Wayland implementation for Chromium Ozone classes
BSD 3-Clause "New" or "Revised" License
218 stars 82 forks source link

Building failed on the LINK stage #446

Closed vrotenberg closed 8 years ago

vrotenberg commented 8 years ago

Hello! I tried to build the chromium for Wayland and on the link stage have the following errors: obj/ozone/wayland/libwayland_toolkit.a(obj/ozone/wayland/protocol/wayland_toolkit.text-protocol.o):../../ozone/wayland/protocol/text-protocol.c:types: error: undefined reference to 'wl_seat_interface' obj/ozone/wayland/libwayland_toolkit.a(obj/ozone/wayland/protocol/wayland_toolkit.text-protocol.o):../../ozone/wayland/protocol/text-protocol.c:types: error: undefined reference to 'wl_surface_interface' obj/ozone/wayland/libwayland_toolkit.a(obj/ozone/wayland/protocol/wayland_toolkit.text-protocol.o):../../ozone/wayland/protocol/text-protocol.c:types: error: undefined reference to 'wl_seat_interface' obj/ozone/wayland/libwayland_toolkit.a(obj/ozone/wayland/protocol/wayland_toolkit.text-protocol.o):../../ozone/wayland/protocol/text-protocol.c:types: error: undefined reference to 'wl_surface_interface' obj/ozone/wayland/libwayland_toolkit.a(obj/ozone/wayland/protocol/wayland_toolkit.ivi-application-protocol.o):../../ozone/wayland/protocol/ivi-application-protocol.c:types: error: undefined reference to 'wl_surface_interface' obj/ozone/wayland/libwayland_toolkit.a(obj/ozone/wayland/protocol/wayland_toolkit.xdg-shell-protocol.o):../../ozone/wayland/protocol/xdg-shell-protocol.c:types: error: undefined reference to 'wl_surface_interface' obj/ozone/wayland/libwayland_toolkit.a(obj/ozone/wayland/protocol/wayland_toolkit.xdg-shell-protocol.o):../../ozone/wayland/protocol/xdg-shell-protocol.c:types: error: undefined reference to 'wl_seat_interface' obj/ozone/wayland/libwayland_toolkit.a(obj/ozone/wayland/protocol/wayland_toolkit.xdg-shell-protocol.o):../../ozone/wayland/protocol/xdg-shell-protocol.c:types: error: undefined reference to 'wl_seat_interface' obj/ozone/wayland/libwayland_toolkit.a(obj/ozone/wayland/protocol/wayland_toolkit.xdg-shell-protocol.o):../../ozone/wayland/protocol/xdg-shell-protocol.c:types: error: undefined reference to 'wl_output_interface' ../../ozone/wayland/display.cc:364: error: undefined reference to 'wl_display_flush' ../../ozone/wayland/display.cc:365: error: undefined reference to 'wl_display_disconnect' ../../ozone/wayland/display.cc:124: error: undefined reference to 'wl_display_flush' ../../ozone/wayland/display.cc:272: error: undefined reference to 'wl_display_connect' ../../ozone/wayland/display.cc:285: error: undefined reference to 'wl_display_roundtrip' ../../ozone/wayland/display.cc:605: error: undefined reference to 'wl_compositor_interface' ../../ozone/wayland/display.cc:608: error: undefined reference to 'wl_data_device_manager_interface' ../../ozone/wayland/display.cc:635: error: undefined reference to 'wl_shm_interface' ../../wayland-client-protocol.h:186: error: undefined reference to 'wl_registry_interface' ../../wayland-client-protocol.h:189: error: undefined reference to 'wl_proxy_marshal_constructor' ../../wayland-client-protocol.h:259: error: undefined reference to 'wl_proxy_add_listener' ../../ozone/wayland/protocol/text-client-protocol.h:521: error: undefined reference to 'wl_proxy_destroy' ../../wayland-client-protocol.h:1037: error: undefined reference to 'wl_proxy_destroy' ../../wayland-client-protocol.h:357: error: undefined reference to 'wl_proxy_destroy' ../../wayland-client-protocol.h:623: error: undefined reference to 'wl_proxy_destroy' ../../wayland-client-protocol.h:288: error: undefined reference to 'wl_proxy_marshal_constructor' ../../ozone/wayland/display_poll_thread.cc:57: error: undefined reference to 'wl_display_get_fd' ../../ozone/wayland/display_poll_thread.cc:68: error: undefined reference to 'wl_display_dispatch_pending' ../../ozone/wayland/display_poll_thread.cc:69: error: undefined reference to 'wl_display_flush' ../../ozone/wayland/display_poll_thread.cc:94: error: undefined reference to 'wl_display_dispatch' ../../ozone/wayland/ozone_wayland_screen.cc:30: error: undefined reference to 'wl_display_connect' ../../ozone/wayland/ozone_wayland_screen.cc:41: error: undefined reference to 'wl_display_roundtrip' ../../ozone/wayland/ozone_wayland_screen.cc:43: error: undefined reference to 'wl_display_roundtrip' ../../ozone/wayland/ozone_wayland_screen.cc:56: error: undefined reference to 'wl_display_flush' ../../ozone/wayland/ozone_wayland_screen.cc:57: error: undefined reference to 'wl_display_disconnect' ../../wayland-client-protocol.h:186: error: undefined reference to 'wl_registry_interface' ../../wayland-client-protocol.h:189: error: undefined reference to 'wl_proxy_marshal_constructor' ../../wayland-client-protocol.h:259: error: undefined reference to 'wl_proxy_add_listener' ../../ozone/wayland/screen.cc:17: error: undefined reference to 'wl_output_interface' ../../wayland-client-protocol.h:288: error: undefined reference to 'wl_proxy_marshal_constructor' ../../wayland-client-protocol.h:2346: error: undefined reference to 'wl_proxy_add_listener' ../../wayland-client-protocol.h:1589: error: undefined reference to 'wl_proxy_add_listener' ../../wayland-client-protocol.h:1600: error: undefined reference to 'wl_proxy_set_user_data' ../../wayland-client-protocol.h:373: error: undefined reference to 'wl_region_interface' ../../wayland-client-protocol.h:2396: error: undefined reference to 'wl_proxy_marshal' ../../wayland-client-protocol.h:1506: error: undefined reference to 'wl_proxy_marshal' ../../wayland-client-protocol.h:1499: error: undefined reference to 'wl_proxy_marshal' ../../wayland-client-protocol.h:2387: error: undefined reference to 'wl_proxy_marshal' ../../ozone/wayland/egl/egl_window.cc:14: error: undefined reference to 'wl_egl_window_create' ../../ozone/wayland/egl/egl_window.cc:18: error: undefined reference to 'wl_egl_window_destroy' ../../ozone/wayland/egl/egl_window.cc:22: error: undefined reference to 'wl_egl_window_resize' ../../ozone/wayland/egl/egl_window.cc:26: error: undefined reference to 'wl_egl_window_resize' ../../wayland-client-protocol.h:628: error: undefined reference to 'wl_shm_pool_interface' ../../wayland-client-protocol.h:400: error: undefined reference to 'wl_buffer_interface' ../../ozone/wayland/input/keyboard.cc:48: error: undefined reference to 'wl_proxy_get_id' ../../wayland-client-protocol.h:1628: error: undefined reference to 'wl_keyboard_interface' ../../wayland-client-protocol.h:1617: error: undefined reference to 'wl_pointer_interface' ../../wayland-client-protocol.h:1815: error: undefined reference to 'wl_proxy_set_user_data' ../../wayland-client-protocol.h:1459: error: undefined reference to 'wl_proxy_get_user_data' ../../ozone/wayland/input/text_input.cc:98: error: undefined reference to 'wl_proxy_get_id' ../../ozone/wayland/protocol/text-client-protocol.h:529: error: undefined reference to 'wl_proxy_create' ../../wayland-client-protocol.h:1639: error: undefined reference to 'wl_touch_interface' ../../wayland-client-protocol.h:2137: error: undefined reference to 'wl_proxy_set_user_data' ../../wayland-client-protocol.h:1459: error: undefined reference to 'wl_proxy_get_user_data' ../../wayland-client-protocol.h:1453: error: undefined reference to 'wl_proxy_set_user_data' ../../ozone/wayland/shell/shell.cc:59: error: undefined reference to 'wl_shell_interface' ../../wayland-client-protocol.h:1091: error: undefined reference to 'wl_shell_surface_interface' ../../wayland-client-protocol.h:1053: error: undefined reference to 'wl_data_device_interface' ../../wayland-client-protocol.h:1459: error: undefined reference to 'wl_proxy_get_user_data' clang: error: linker command failed with exit code 1 (use -v to see invocation)

Please help!

kalyankondapally commented 8 years ago

Looks similar to https://github.com/01org/ozone-wayland/issues/436 which @joone is trying to resolve

joone commented 8 years ago

This is the same problem. There is a workaround: https://github.com/01org/ozone-wayland/issues/436#issuecomment-169744394

vrotenberg commented 8 years ago

Thanks. So how can I workaround this problem? How can I add it to the link program?

vrotenberg commented 8 years ago

So... is there a solution?

vrotenberg commented 8 years ago

As I saw the file for linking is found here: build/common.gypi. Have I edit it?

vrotenberg commented 8 years ago

Any news? I need this build so much! Thanks.

vrotenberg commented 8 years ago

@kalyankondapally Can you help please? Thanks a lot. I need it very much!

joone commented 8 years ago

@vrotenberg just copy the last link command into your text editor and add the missing libraries I commented. Then, cd out/Release and paste the command then run it.

vrotenberg commented 8 years ago

Ok, I tried it. I got: /home/shalom/git/chromium/src/third_party/binutils/Linux_x64/Release/bin/ld: error: cannot find -lwayland-server /home/shalom/git/chromium/src/third_party/binutils/Linux_x64/Release/bin/ld: error: cannot find -lwayland-client /home/shalom/git/chromium/src/third_party/binutils/Linux_x64/Release/bin/ld: error: cannot find -lwayland-cursor /home/shalom/git/chromium/src/third_party/binutils/Linux_x64/Release/bin/ld: error: cannot find -lwayland-egl

It cannot find the missing libraries!

vrotenberg commented 8 years ago

Should I copy libwayland-server.so, libwayland-client.so , libwayland-cursor.so and libwayland-egl.so to the src/build/linux/debian_wheezy_i386-sysroot/usr/lib/i386-linux-gnu directory?

vrotenberg commented 8 years ago

Unbelievable!!! It's compiled successfully after I copied the libraries into rc/build/linux/debian_wheezy_i386-sysroot/usr/lib/i386-linux-gnu!!! Thanks a lot! But now when I run the file I get "Invalid file descriptor to ICU data received" What can I do now? Thanks!