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

linking issue - mmal: mmal_component_create_core: could not find component 'vc.ril.video_render' (master branch) #303

Closed
fordfrog opened this issue Mar 30, 2016 · 13 comments

Comments

@fordfrog
Copy link

this error occurs when trying to play video in kodi using dvdplayer.

here are mmal libs that kodi links against:

# ldd -d /usr/lib/kodi/kodi.bin | grep mmal
        libmmal.so => /usr/lib/opengl/raspberrypi-userland/lib/libmmal.so (0x76b5a000)
        libmmal_core.so => /usr/lib/opengl/raspberrypi-userland/lib/libmmal_core.so (0x76b39000)
        libmmal_util.so => /usr/lib/opengl/raspberrypi-userland/lib/libmmal_util.so (0x76b19000)

i'm not that familiar with linking stuff, but there are some libraries with undefined symbols. executables matching /opt/vc/bin/ and /opt/vc/lib/plugins/_so are ok but there are issues for /opt/vc/lib/_so (including complete list):

# ldd -d /opt/vc/lib/*so
/opt/vc/lib/libbcm_host.so:
        linux-vdso.so.1 (0x7ef41000)
        libvchiq_arm.so => /usr/lib/opengl/raspberrypi-userland/lib/libvchiq_arm.so (0x76f76000)
        libvcos.so => /usr/lib/opengl/raspberrypi-userland/lib/libvcos.so (0x76f5a000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x76f32000)
        libc.so.6 => /lib/libc.so.6 (0x76dfc000)
        /lib/ld-linux-armhf.so.3 (0x54b7a000)
        libdl.so.2 => /lib/libdl.so.2 (0x76de9000)
        librt.so.1 => /lib/librt.so.1 (0x76dd2000)
/opt/vc/lib/libcontainers.so:
        linux-vdso.so.1 (0x7efac000)
        libvcos.so => /usr/lib/opengl/raspberrypi-userland/lib/libvcos.so (0x76f42000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x76f1a000)
        libc.so.6 => /lib/libc.so.6 (0x76de5000)
        /lib/ld-linux-armhf.so.3 (0x54b00000)
        libdl.so.2 => /lib/libdl.so.2 (0x76dd1000)
        librt.so.1 => /lib/librt.so.1 (0x76dba000)
/opt/vc/lib/libdebug_sym.so:
        linux-vdso.so.1 (0x7ef9f000)
        libc.so.6 => /lib/libc.so.6 (0x76dc0000)
        /lib/ld-linux-armhf.so.3 (0x54b33000)
undefined symbol: vcos_log_impl (/opt/vc/lib/libdebug_sym.so)
undefined symbol: vcos_log_register     (/opt/vc/lib/libdebug_sym.so)
/opt/vc/lib/libdtovl.so:
        linux-vdso.so.1 (0x7efcc000)
        libc.so.6 => /lib/libc.so.6 (0x76dfd000)
        /lib/ld-linux-armhf.so.3 (0x54b85000)
undefined symbol: fdt_first_property_offset     (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_get_path  (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_check_header      (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_get_name  (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_appendprop        (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_setprop_inplace   (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_next_subnode      (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_get_phandle       (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_get_property      (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_setprop   (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_add_subnode_namelen       (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_subnode_offset_namelen    (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_getprop   (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_delprop   (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_path_offset       (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_subnode_offset    (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_pack      (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_node_offset_by_phandle    (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_path_offset_namelen       (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_next_node (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_first_subnode     (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_next_property_offset      (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_getprop_by_offset (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_getprop_namelen   (/opt/vc/lib/libdtovl.so)
undefined symbol: fdt_del_node  (/opt/vc/lib/libdtovl.so)
/opt/vc/lib/libEGL.so:
        linux-vdso.so.1 (0x7ef10000)
        libbcm_host.so => /usr/lib/opengl/raspberrypi-userland/lib/libbcm_host.so (0x76ebe000)
        libm.so.6 => /lib/libm.so.6 (0x76e45000)
        libvchiq_arm.so => /usr/lib/opengl/raspberrypi-userland/lib/libvchiq_arm.so (0x76e2e000)
        libvcos.so => /usr/lib/opengl/raspberrypi-userland/lib/libvcos.so (0x76e11000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x76de9000)
        libc.so.6 => /lib/libc.so.6 (0x76cb4000)
        /lib/ld-linux-armhf.so.3 (0x54b7f000)
        libdl.so.2 => /lib/libdl.so.2 (0x76ca1000)
        librt.so.1 => /lib/librt.so.1 (0x76c8a000)
undefined symbol: glPointSizePointerOES (/opt/vc/lib/libEGL.so)
undefined symbol: glDiscardFramebufferEXT       (/opt/vc/lib/libEGL.so)
undefined symbol: glxx_buffer_info_set  (/opt/vc/lib/libEGL.so)
undefined symbol: glBufferSubData       (/opt/vc/lib/libEGL.so)
undefined symbol: glxx_client_GetFramebufferAttachmentParameteriv       (/opt/vc/lib/libEGL.so)
undefined symbol: glxx_client_state_free        (/opt/vc/lib/libEGL.so)
undefined symbol: glxx_client_DeleteRenderbuffers       (/opt/vc/lib/libEGL.so)
undefined symbol: glxx_set_error        (/opt/vc/lib/libEGL.so)
undefined symbol: glxx_client_GenFramebuffers   (/opt/vc/lib/libEGL.so)
undefined symbol: glxx_set_error_api    (/opt/vc/lib/libEGL.so)
undefined symbol: glxx_client_BindRenderbuffer  (/opt/vc/lib/libEGL.so)
undefined symbol: glxx_client_FramebufferTexture2D      (/opt/vc/lib/libEGL.so)
undefined symbol: glxx_client_GenRenderbuffers  (/opt/vc/lib/libEGL.so)
undefined symbol: glxx_client_DeleteFramebuffers        (/opt/vc/lib/libEGL.so)
undefined symbol: glxx_client_GetRenderbufferParameteriv        (/opt/vc/lib/libEGL.so)
undefined symbol: glxx_client_RenderbufferStorage       (/opt/vc/lib/libEGL.so)
undefined symbol: glxx_client_IsFramebuffer     (/opt/vc/lib/libEGL.so)
undefined symbol: glintAttribPointer    (/opt/vc/lib/libEGL.so)
undefined symbol: glxx_client_GenerateMipmap    (/opt/vc/lib/libEGL.so)
undefined symbol: gl20_client_state_init        (/opt/vc/lib/libEGL.so)
undefined symbol: gl11_client_state_init        (/opt/vc/lib/libEGL.so)
undefined symbol: glxx_client_FramebufferRenderbuffer   (/opt/vc/lib/libEGL.so)
undefined symbol: glxx_client_IsRenderbuffer    (/opt/vc/lib/libEGL.so)
undefined symbol: glxx_buffer_info_get  (/opt/vc/lib/libEGL.so)
undefined symbol: glxx_client_BindFramebuffer   (/opt/vc/lib/libEGL.so)
undefined symbol: glxx_client_CheckFramebufferStatus    (/opt/vc/lib/libEGL.so)
/opt/vc/lib/libGLESv1_CM.so:
        linux-vdso.so.1 (0x7eccb000)
        libEGL.so => /usr/lib/opengl/raspberrypi-userland/lib/libEGL.so (0x76f26000)
        libvchiq_arm.so => /usr/lib/opengl/raspberrypi-userland/lib/libvchiq_arm.so (0x76f0f000)
        libvcos.so => /usr/lib/opengl/raspberrypi-userland/lib/libvcos.so (0x76ef3000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x76eca000)
        libm.so.6 => /lib/libm.so.6 (0x76e51000)
        libc.so.6 => /lib/libc.so.6 (0x76d1c000)
        /lib/ld-linux-armhf.so.3 (0x54ae7000)
        libbcm_host.so => /usr/lib/opengl/raspberrypi-userland/lib/libbcm_host.so (0x76cf7000)
        libdl.so.2 => /lib/libdl.so.2 (0x76ce4000)
        librt.so.1 => /lib/librt.so.1 (0x76ccc000)
/opt/vc/lib/libGLESv2.so:
        linux-vdso.so.1 (0x7eff9000)
        libEGL.so => /usr/lib/opengl/raspberrypi-userland/lib/libEGL.so (0x76ed2000)
        libvchiq_arm.so => /usr/lib/opengl/raspberrypi-userland/lib/libvchiq_arm.so (0x76ebb000)
        libvcos.so => /usr/lib/opengl/raspberrypi-userland/lib/libvcos.so (0x76e9f000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x76e76000)
        libm.so.6 => /lib/libm.so.6 (0x76dfd000)
        libc.so.6 => /lib/libc.so.6 (0x76cc8000)
        /lib/ld-linux-armhf.so.3 (0x54b70000)
        libbcm_host.so => /usr/lib/opengl/raspberrypi-userland/lib/libbcm_host.so (0x76ca3000)
        libdl.so.2 => /lib/libdl.so.2 (0x76c90000)
        librt.so.1 => /lib/librt.so.1 (0x76c78000)
/opt/vc/lib/libmmal_components.so:
        linux-vdso.so.1 (0x7ec85000)
        libcontainers.so => /usr/lib/opengl/raspberrypi-userland/lib/libcontainers.so (0x76f7e000)
        libmmal_util.so => /usr/lib/opengl/raspberrypi-userland/lib/libmmal_util.so (0x76f5e000)
        libmmal_core.so => /usr/lib/opengl/raspberrypi-userland/lib/libmmal_core.so (0x76f3d000)
        libvcos.so => /usr/lib/opengl/raspberrypi-userland/lib/libvcos.so (0x76f20000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x76ef8000)
        libc.so.6 => /lib/libc.so.6 (0x76dc3000)
        /lib/ld-linux-armhf.so.3 (0x54b10000)
        librt.so.1 => /lib/librt.so.1 (0x76dac000)
        libdl.so.2 => /lib/libdl.so.2 (0x76d99000)
/opt/vc/lib/libmmal_core.so:
        linux-vdso.so.1 (0x7ec93000)
        libvcos.so => /usr/lib/opengl/raspberrypi-userland/lib/libvcos.so (0x76f5d000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x76f35000)
        librt.so.1 => /lib/librt.so.1 (0x76f1e000)
        libc.so.6 => /lib/libc.so.6 (0x76de8000)
        /lib/ld-linux-armhf.so.3 (0x54b14000)
        libdl.so.2 => /lib/libdl.so.2 (0x76dd5000)
undefined symbol: mmal_list_create      (/opt/vc/lib/libmmal_core.so)
undefined symbol: mmal_list_push_back   (/opt/vc/lib/libmmal_core.so)
undefined symbol: mmal_port_pool_create (/opt/vc/lib/libmmal_core.so)
undefined symbol: mmal_status_to_string (/opt/vc/lib/libmmal_core.so)
undefined symbol: mmal_list_insert      (/opt/vc/lib/libmmal_core.so)
undefined symbol: mmal_list_pop_front   (/opt/vc/lib/libmmal_core.so)
undefined symbol: mmal_rational_equal   (/opt/vc/lib/libmmal_core.so)
undefined symbol: mmal_port_type_to_string      (/opt/vc/lib/libmmal_core.so)
undefined symbol: mmal_list_push_front  (/opt/vc/lib/libmmal_core.so)
undefined symbol: mmal_list_destroy     (/opt/vc/lib/libmmal_core.so)
undefined symbol: mmal_rational_to_fixed_16_16  (/opt/vc/lib/libmmal_core.so)
/opt/vc/lib/libmmal.so:
        linux-vdso.so.1 (0x7efab000)
        libmmal_core.so => /usr/lib/opengl/raspberrypi-userland/lib/libmmal_core.so (0x76f4e000)
        libmmal_util.so => /usr/lib/opengl/raspberrypi-userland/lib/libmmal_util.so (0x76f2e000)
        libvcos.so => /usr/lib/opengl/raspberrypi-userland/lib/libvcos.so (0x76f12000)
        libc.so.6 => /lib/libc.so.6 (0x76ddc000)
        /lib/ld-linux-armhf.so.3 (0x54b26000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x76db4000)
        librt.so.1 => /lib/librt.so.1 (0x76d9d000)
        libdl.so.2 => /lib/libdl.so.2 (0x76d8a000)
/opt/vc/lib/libmmal_util.so:
        linux-vdso.so.1 (0x7ec46000)
        libvcos.so => /usr/lib/opengl/raspberrypi-userland/lib/libvcos.so (0x76f4d000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x76f25000)
        libc.so.6 => /lib/libc.so.6 (0x76df0000)
        /lib/ld-linux-armhf.so.3 (0x54b68000)
        libdl.so.2 => /lib/libdl.so.2 (0x76ddc000)
        librt.so.1 => /lib/librt.so.1 (0x76dc5000)
undefined symbol: mmal_log_category     (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_port_payload_alloc       (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_port_payload_free        (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_queue_create     (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_port_send_buffer (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_component_create (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_pool_callback_set        (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_event_format_changed_get (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_port_connect     (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_port_disable     (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_port_buffer_header_callback      (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_ports_clock_free (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_component_destroy        (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_component_create_with_constructor        (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_pool_destroy     (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_buffer_header_acquire    (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_port_enable      (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_port_format_commit       (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_ports_free       (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_queue_length     (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_event_error_send (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_ports_clock_alloc        (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_queue_put        (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_port_payload_alloc       (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_queue_put_back   (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_port_parameter_set       (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_component_action_trigger (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_format_full_copy (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_port_event_send  (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_port_disconnect  (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_queue_get        (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_component_acquire        (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_queue_destroy    (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_port_payload_free        (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_pool_create_with_allocator       (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_ports_alloc      (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_port_flush       (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_component_action_register        (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_pool_resize      (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_port_parameter_get       (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_buffer_header_release    (/opt/vc/lib/libmmal_util.so)
undefined symbol: mmal_component_release        (/opt/vc/lib/libmmal_util.so)
/opt/vc/lib/libmmal_vc_client.so:
        linux-vdso.so.1 (0x7ec86000)
        libvchiq_arm.so => /usr/lib/opengl/raspberrypi-userland/lib/libvchiq_arm.so (0x76f6f000)
        libvcsm.so => /usr/lib/opengl/raspberrypi-userland/lib/libvcsm.so (0x76f59000)
        libvcos.so => /usr/lib/opengl/raspberrypi-userland/lib/libvcos.so (0x76f3d000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x76f14000)
        libc.so.6 => /lib/libc.so.6 (0x76ddf000)
        /lib/ld-linux-armhf.so.3 (0x54b21000)
        libdl.so.2 => /lib/libdl.so.2 (0x76dcc000)
        librt.so.1 => /lib/librt.so.1 (0x76db5000)
undefined symbol: mmal_log_category     (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_buffer_header_replicate  (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_port_alloc       (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_queue_create     (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_buffer_header_driver_data        (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_event_format_changed_get (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_status_to_string (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_port_buffer_header_callback      (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_format_extradata_alloc   (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_4cc_to_string    (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_ports_free       (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_queue_length     (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_event_error_send (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_component_supplier_register      (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_queue_put        (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_port_free        (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_format_copy      (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_component_action_trigger (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_port_event_send  (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_port_event_get   (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_queue_get        (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_queue_destroy    (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_ports_alloc      (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_component_action_register        (/opt/vc/lib/libmmal_vc_client.so)
undefined symbol: mmal_buffer_header_release    (/opt/vc/lib/libmmal_vc_client.so)
/opt/vc/lib/libopenmaxil.so:
        linux-vdso.so.1 (0x7efce000)
        libbcm_host.so => /usr/lib/opengl/raspberrypi-userland/lib/libbcm_host.so (0x76f64000)
        libvchiq_arm.so => /usr/lib/opengl/raspberrypi-userland/lib/libvchiq_arm.so (0x76f4d000)
        libvcos.so => /usr/lib/opengl/raspberrypi-userland/lib/libvcos.so (0x76f31000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x76f08000)
        libc.so.6 => /lib/libc.so.6 (0x76dd3000)
        /lib/ld-linux-armhf.so.3 (0x54b9a000)
        libdl.so.2 => /lib/libdl.so.2 (0x76dc0000)
        librt.so.1 => /lib/librt.so.1 (0x76da9000)
/opt/vc/lib/libOpenVG.so:
        linux-vdso.so.1 (0x7eff8000)
        libEGL.so => /usr/lib/opengl/raspberrypi-userland/lib/libEGL.so (0x76f5c000)
        libvchiq_arm.so => /usr/lib/opengl/raspberrypi-userland/lib/libvchiq_arm.so (0x76f45000)
        libvcos.so => /usr/lib/opengl/raspberrypi-userland/lib/libvcos.so (0x76f29000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x76f00000)
        libm.so.6 => /lib/libm.so.6 (0x76e87000)
        libc.so.6 => /lib/libc.so.6 (0x76d52000)
        /lib/ld-linux-armhf.so.3 (0x54b18000)
        libbcm_host.so => /usr/lib/opengl/raspberrypi-userland/lib/libbcm_host.so (0x76d2d000)
        libdl.so.2 => /lib/libdl.so.2 (0x76d1a000)
        librt.so.1 => /lib/librt.so.1 (0x76d02000)
undefined symbol: glPointSizePointerOES (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: glDiscardFramebufferEXT       (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: glxx_buffer_info_set  (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: glBufferSubData       (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: glxx_client_GetFramebufferAttachmentParameteriv       (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: glxx_client_state_free        (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: glxx_client_DeleteRenderbuffers       (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: glxx_set_error        (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: glxx_client_GenFramebuffers   (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: glxx_set_error_api    (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: glxx_client_BindRenderbuffer  (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: glxx_client_FramebufferTexture2D      (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: glxx_client_GenRenderbuffers  (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: glxx_client_DeleteFramebuffers        (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: glxx_client_GetRenderbufferParameteriv        (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: glxx_client_RenderbufferStorage       (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: glxx_client_IsFramebuffer     (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: glintAttribPointer    (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: glxx_client_GenerateMipmap    (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: gl20_client_state_init        (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: gl11_client_state_init        (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: glxx_client_FramebufferRenderbuffer   (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: glxx_client_IsRenderbuffer    (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: glxx_buffer_info_get  (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: glxx_client_BindFramebuffer   (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
undefined symbol: glxx_client_CheckFramebufferStatus    (/usr/lib/opengl/raspberrypi-userland/lib/libEGL.so)
/opt/vc/lib/libvcos.so:
        linux-vdso.so.1 (0x7ef72000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x76f78000)
        libdl.so.2 => /lib/libdl.so.2 (0x76f65000)
        librt.so.1 => /lib/librt.so.1 (0x76f4e000)
        libc.so.6 => /lib/libc.so.6 (0x76e18000)
        /lib/ld-linux-armhf.so.3 (0x54afe000)
/opt/vc/lib/libvcsm.so:
        linux-vdso.so.1 (0x7eed2000)
        libvcos.so => /usr/lib/opengl/raspberrypi-userland/lib/libvcos.so (0x76f0d000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x76ee5000)
        libc.so.6 => /lib/libc.so.6 (0x76db0000)
        /lib/ld-linux-armhf.so.3 (0x54b0d000)
        libdl.so.2 => /lib/libdl.so.2 (0x76d9c000)
        librt.so.1 => /lib/librt.so.1 (0x76d85000)
/opt/vc/lib/libvchiq_arm.so:
        linux-vdso.so.1 (0x7ebfa000)
        libvcos.so => /usr/lib/opengl/raspberrypi-userland/lib/libvcos.so (0x76ee6000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x76ebe000)
        libc.so.6 => /lib/libc.so.6 (0x76d89000)
        /lib/ld-linux-armhf.so.3 (0x54b65000)
        libdl.so.2 => /lib/libdl.so.2 (0x76d75000)
        librt.so.1 => /lib/librt.so.1 (0x76d5e000)
/opt/vc/lib/libWFC.so:
        linux-vdso.so.1 (0x7ef5c000)
        libvchiq_arm.so => /usr/lib/opengl/raspberrypi-userland/lib/libvchiq_arm.so (0x76fb1000)
        libvcos.so => /usr/lib/opengl/raspberrypi-userland/lib/libvcos.so (0x76f95000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x76f6d000)
        libc.so.6 => /lib/libc.so.6 (0x76e37000)
        /lib/ld-linux-armhf.so.3 (0x54aee000)
        libdl.so.2 => /lib/libdl.so.2 (0x76e24000)
        librt.so.1 => /lib/librt.so.1 (0x76e0d000)
@6by9
Copy link
Contributor

6by9 commented Mar 30, 2016

Taking just your first couple of lines, that sounds like a duplicate of #178 - the optimiser has been too thorough and removed the constructor that registers the VideoCore MMAL components.

I'm not sure what you're trying to impart with the linker dump.

@fordfrog
Copy link
Author

well, i suppose that "undefined symbol" is probably not ok, at least in some cases. but i'm not familiar with how linker works so maybe it is correct. anyway, i was able to remove some of the issues by modifying (or adding) target_link_libraries, like "target_link_libraries(dtovl fdt)", "target_link_libraries (mmal_core mmal_util vcos)" etc. i also found out that mmal_core needs mmal_util and mmal_util needs mmal_core which cmake did not like when i added the missing libraries. so as i do not understand this stuff, i'd rather have someone else to have a look at it and provide appropriate fix.

@pelwell
Copy link
Contributor

pelwell commented Mar 30, 2016

@fordfrog You are right. At least in the case of libdtovl, the libfdt.a archive should be built into the shared library, rather than being an unresolved dependency.

@fordfrog
Copy link
Author

@pelwell any idea, what's causing that mmal error? is it related to the undefined symbols or the issue is different?

@pelwell
Copy link
Contributor

pelwell commented Mar 30, 2016

I believe all of the mmal undefined symbols are expected, in that they are exported by other shared libraries.

@6by9's explanation sounds plausible. MMAL uses the "constructor" attribute to mark functions that should be called before entering main(). If that mechanism is failing then the components will not be registered, which will lead to the error you saw. Note that this is a runtime error, not a linking error.

@6by9
Copy link
Contributor

6by9 commented Mar 30, 2016

What exactly have you done? Steps to reproduce please.
Is this the Kodi installed from apt-get, or one you've compiled yourself?

It appears that Kodi isn't asking for libmmal_vc_client.so, and that is what will register the VideoCore MMAL components via the constructor (see #178). That's probably an issue with your build of Kodi, not the userland libraries themselves.

@fordfrog
Copy link
Author

  • kodi 16.0, built on gentoo linux distro using kodi ebuild (bulding script)
  • starting kodi, omxplayer disabled (in video acceleration menu section), playing video file (no picture, log file containing mmal errors)
  • kodi really links only against three mmal libraries (mentioned in first post), mmal_client_vc not being one of them, if that is what you mean.
  • mmal related stuff is handled in kodi build system, i found no reference to mmal in the ebuild itself so there is no extra configuration performed

do i get it right that kodi should use mmal_vc_client instead of mmal, mmal_core and mmal_util?

@6by9
Copy link
Contributor

6by9 commented Mar 30, 2016

do i get it right that kodi should use mmal_vc_client instead of mmal, mmal_core and mmal_util?

As well as.
mmal_core provides the core functionality.
mmal_util is helper functions
mmal_vc_client adds support for talking to VideoCore for hardware acceleration.

Please read #178, it even links to plexinc/OpenELEC.tv@3e46d68 which is the OpenELEC change to amend the linker flags. You probably want something similar.

@ED6E0F17
Copy link

@fordfrog
Copy link
Author

@ED6E0F17 yes, it is. i was told elsewhere that removing --as-needed is not a fix but workaround, so i was looking for another solution for kodi but found none. compiling c stuff is not what i am experienced with.

@6by9
Copy link
Contributor

6by9 commented Apr 1, 2016

Summary: This is a duplicate of #178, and should be closed as such.

If the community wishes to come up with an alternative then please put it forward.

The requirements are that:

  • libmmal can be built independently of the component providers.
  • somewhere, something has to load the component provider and trigger them to register the components that they support. This is currently done via the constructor attribute. mmal_vc_client is NOT a dependency on libmmal or libmmal_core - MMAL has been built for standalone Windows where VideoCore is nowhere in sight.

The only thing that really knows it wants to use VideoCore accelerated components is your application, so that is really what has to signal that it wants libmmal_vc_client.
Propose your solution without breaking any existing applications.

@pelwell
Copy link
Contributor

pelwell commented Apr 1, 2016

On the VPU the way I got round this was to put some key function like a constructor (or a reference to it) in a .init.* section - see interface/vchi/vchi_autoservice.h for an example; this works because the linker always includes things in .init and .init.*. I don't know if that technique works with the GNU linker, but it might be worth a try.

@popcornmix
Copy link
Contributor

Closing as duplicate of #178

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

No branches or pull requests

5 participants