libEGL missing/erroneous links to GLESv2
Posted: Sun Oct 14, 2012 7:59 pm
Hey guys, as discussed at the bottom of this thread: http://www.raspberrypi.org/phpBB3/viewt ... 90&p=94769
when linking against libEGL you frequently run into a series of errors where you are missing things in libGLESv2, e.g.
Adding -lGLESv2 works around the errors.
But I'm confused by this; if EGL needs GLESv2 constitutively, why doesn't it link to it itself? (I'm also not clear why EGL needs GLESv2 in the first place; I'm trying to build Cairo with EGL/VG support so it will work without X. As an initial attempt, I wasn't planning to include GLESv2 features but it seems EGL thinks it needs them anyway.)
Some people have said that this only started happening in more recent versions of the firmware? Shall I post an issue on Git? I assume this has already been discussed somewhere but I haven't found it.
when linking against libEGL you frequently run into a series of errors where you are missing things in libGLESv2, e.g.
Code: Select all
/opt/vc/lib/libEGL.so: undefined reference to `glxx_client_GetRenderbufferParameteriv'
/opt/vc/lib/libEGL.so: undefined reference to `gl20_client_state_init'
/opt/vc/lib/libEGL.so: undefined reference to `gl11_client_state_init'
/opt/vc/lib/libEGL.so: undefined reference to `glintAttribPointer'
/opt/vc/lib/libEGL.so: undefined reference to `glxx_client_GenFramebuffers'
/opt/vc/lib/libEGL.so: undefined reference to `glxx_buffer_info_get'
/opt/vc/lib/libEGL.so: undefined reference to `glDiscardFramebufferEXT'
/opt/vc/lib/libEGL.so: undefined reference to `glxx_client_FramebufferTexture2D'
/opt/vc/lib/libEGL.so: undefined reference to `glxx_client_IsRenderbuffer'
/opt/vc/lib/libEGL.so: undefined reference to `glxx_set_error'
/opt/vc/lib/libEGL.so: undefined reference to `glxx_client_BindFramebuffer'
/opt/vc/lib/libEGL.so: undefined reference to `glxx_client_GenRenderbuffers'
/opt/vc/lib/libEGL.so: undefined reference to `glxx_set_error_api'
/opt/vc/lib/libEGL.so: undefined reference to `glxx_client_BindRenderbuffer'
/opt/vc/lib/libEGL.so: undefined reference to `glBufferSubData'
/opt/vc/lib/libEGL.so: undefined reference to `glxx_client_GetFramebufferAttachmentParameteriv'
/opt/vc/lib/libEGL.so: undefined reference to `glxx_client_CheckFramebufferStatus'
/opt/vc/lib/libEGL.so: undefined reference to `glxx_client_FramebufferRenderbuffer'
/opt/vc/lib/libEGL.so: undefined reference to `glxx_client_RenderbufferStorage'
/opt/vc/lib/libEGL.so: undefined reference to `glxx_client_DeleteRenderbuffers'
/opt/vc/lib/libEGL.so: undefined reference to `glxx_client_GenerateMipmap'
/opt/vc/lib/libEGL.so: undefined reference to `glxx_buffer_info_set'
/opt/vc/lib/libEGL.so: undefined reference to `glPointSizePointerOES'
/opt/vc/lib/libEGL.so: undefined reference to `glxx_client_DeleteFramebuffers'
/opt/vc/lib/libEGL.so: undefined reference to `glxx_client_IsFramebuffer'
/opt/vc/lib/libEGL.so: undefined reference to `glxx_client_state_free'
But I'm confused by this; if EGL needs GLESv2 constitutively, why doesn't it link to it itself? (I'm also not clear why EGL needs GLESv2 in the first place; I'm trying to build Cairo with EGL/VG support so it will work without X. As an initial attempt, I wasn't planning to include GLESv2 features but it seems EGL thinks it needs them anyway.)
Some people have said that this only started happening in more recent versions of the firmware? Shall I post an issue on Git? I assume this has already been discussed somewhere but I haven't found it.