Opened 7 years ago
Closed 7 years ago
#17623 closed defect (fixed)
Ubuntu 17.10 + distro-vbox-guest 5.1.30 + compton => undef glFramebufferTexture2D -> fixed in 5.2.12
Reported by: | Justin5683 | Owned by: | |
---|---|---|---|
Component: | guest additions/x11/graphics | Version: | VirtualBox 5.1.30 |
Keywords: | compton | Cc: | |
Guest type: | Linux | Host type: | Windows |
Description
ref: https://answers.launchpad.net/ubuntu/+source/virtualbox/+question/665636
In question-665636, I reported that compton fails to start due to a missing symbol. virtualbox-guest-x11 (pkg) installs an ld.so.conf.d which adds /usr/lib/virtualbox/additions to global ld-path, which ends up adding libGL.so.1 from virtualbox-guest-x11 to ld-path.
$ compton compton: symbol lookup error: compton: undefined symbol: glFramebufferTexture2D
(vbox) libGL.so.1 does not contain glFramebufferTexture2D:
# objdump -T /usr/lib/virtualbox/additions/libGL.so.1 | grep glFramebufferTexture2D 0000000000072580 g DF .text 0000000000000015 Base glFramebufferTexture2DEXT
But, libgl1-mesa-glx's libGL.so.1 does:
# objdump -T /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 | grep glFramebufferTexture2D 0000000000054ac0 g DF .text 0000000000000000 Base glFramebufferTexture2DEXT 0000000000054ac0 g DF .text 0000000000000000 Base glFramebufferTexture2D
My work-around is to take virtualbox-guest-x11 out of global ld-path:
# update-alternatives --set x86_64-linux-gnu_egl_conf /usr/lib/x86_64-linux-gnu/mesa-egl/ld.so.conf update-alternatives: using /usr/lib/x86_64-linux-gnu/mesa-egl/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf (x86_64-linux-gnu_egl_conf) in manual mode # update-alternatives --set x86_64-linux-gnu_gl_conf /usr/lib/x86_64-linux-gnu/mesa/ld.so.conf update-alternatives: using /usr/lib/x86_64-linux-gnu/mesa/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf (x86_64-linux-gnu_gl_conf) in manual mode # ldconfig
Alternately: this is a distro bug, but I'll start here.
Change History (17)
comment:2 by , 7 years ago
Problems with distribution builds of VirtualBox should be addressed by the distribution. However, please test with an Oracle build first to see if it really is a distribution issue.
comment:3 by , 7 years ago
This is also reproducable with the original Oracle VBoxLinuxAdditions.run.
follow-up: 7 comment:4 by , 7 years ago
Please try the latest test builds (the Additions test build should be enough), as of r122125. They should be visible in a few minutes.
comment:5 by , 7 years ago
Summary: | Ubuntu 17.10 + distro-vbox-guest 5.1.30 + compton => undef glFramebufferTexture2D → Ubuntu 17.10 + distro-vbox-guest 5.1.30 + compton => undef glFramebufferTexture2D -> fixed after (not in) 5.2.10 |
---|
comment:7 by , 7 years ago
It looks like that fixed the specific glFramebufferTexture2D issue but it either surfaced or caused another:
# Error received undefined symbol: glCheckFramebufferStatus # VBoxGuestAdditions objdump -T /var/lib/VBoxGuestAdditions/lib/libGL.so.1 | grep glCheckFramebufferStatus 0000000000042560 g DF .text 0000000000000016 Base glCheckFramebufferStatusEXT # MESA objdump -T /usr/lib/x86_64-linux-gnu/libGL.so.1 | grep glCheckFramebufferStatus 0000000000045560 g DF wtext 0000000000000000 Base glCheckFramebufferStatusOES 0000000000045540 g DF wtext 0000000000000000 Base glCheckFramebufferStatusEXT 0000000000045520 g DF wtext 0000000000000000 Base glCheckFramebufferStatus
comment:8 by , 7 years ago
I have the same issue with Oracle Linux 7.2 guest VirtualBox 5.2.10, but only with guest kernel 3.8, with 3.10 kernel everything is fine.
follow-up: 12 comment:9 by , 7 years ago
@the_source_him That sounds like something different, as this issue is not kernel related. Did you try the forums?
@SinisterMinister What environment are you using? Compton? Could you please check the full error message - as in which binary cannot find the symbol glCheckFramebufferStatus - and use objdump -T to find all gl* symbols that that binary requires? Also, are you able to build yourself if I supply a patch?
comment:10 by , 7 years ago
still happening with 18.04 beta and the latest VirtualBox 5.2.11.r122125
gpassino@spring:~$ compton compton: symbol lookup error: compton: undefined symbol: glFramebufferTexture2D gpassino@spring:~$ ll /var/lib/VBoxGuestAdditions/lib/libGL.so.1 lrwxrwxrwx 1 root root 45 Apr 19 11:00 /var/lib/VBoxGuestAdditions/lib/libGL.so.1 -> /opt/VBoxGuestAdditions-5.2.11/lib/VBoxOGL.so* gpassino@spring:~$ objdump -T /var/lib/VBoxGuestAdditions/lib/libGL.so.1 | grep glFramebufferTexture2D 0000000000043500 g DF .text 0000000000000016 Base glFramebufferTexture2DEXT gpassino@spring:~$ objdump -T /usr/lib/x86_64-linux-gnu/libGL.so.1 | grep glFramebufferTexture2D 0000000000049ea0 g DF wtext 0000000000000000 Base glFramebufferTexture2DMultisampleIMG 0000000000049e80 g DF wtext 0000000000000000 Base glFramebufferTexture2DMultisampleEXT 0000000000049e40 g DF wtext 0000000000000000 Base glFramebufferTexture2D 0000000000049ec0 g DF wtext 0000000000000000 Base glFramebufferTexture2DOES 0000000000049e60 g DF wtext 0000000000000000 Base glFramebufferTexture2DEXT
follow-up: 13 comment:11 by , 7 years ago
I am not currently on a good Internet connection to check, but could you try the Additions-only build from the test builds page? It could be that the Additions images in the other test builds are older.
https://www.virtualbox.org/download/testcase/VBoxGuestAdditions_5.2.11-122125.iso
comment:12 by , 7 years ago
Replying to michael:
@SinisterMinister What environment are you using?
Ubuntu 18.04 LTS Beta.2 with custom Openbox desktop
Compton?
It's a desktop compositor that does effects like transparency.
Could you please check the full error message - as in which binary cannot find the symbol glCheckFramebufferStatus - and use objdump -T to find all gl* symbols that that binary requires?
This should be everything that's missing from the testbuild I downloaded yesterday.
$ grep -Fxv -f <(objdump -T /var/lib/VBoxGuestAdditions/lib/libGL.so.1 | awk '{print $7}' | grep 'gl[[:upper:]].*' | sort -h) <(objdump -T /usr/bin/compton | awk '{print $5}' | grep 'gl[[:upper:]].*' | sort -h) glCheckFramebufferStatus glDeleteFramebuffers
Here's the complete list just in case I borked that command.
$ objdump -T /usr/bin/compton | awk '{print $5}' | grep 'gl[[:upper:]].*' | sort -h glActiveTexture glAttachShader glBegin glBindFramebuffer glBindTexture glBitmap glBlendFunc glCheckFramebufferStatus glClear glClearColor glColor4f glColorMask glCompileShader glCopyPixels glCopyTexSubImage2D glCreateProgram glCreateShader glDeleteFramebuffers glDeleteProgram glDeleteShader glDeleteTextures glDepthMask glDetachShader glDisable glDrawBuffers glEnable glEnd glFinish glFlush glFramebufferTexture2D glGenFramebuffers glGenTextures glGetFloatv glGetIntegerv glGetProgramInfoLog glGetProgramiv glGetShaderInfoLog glGetShaderiv glGetString glGetUniformLocation glIsEnabled glLinkProgram glLoadIdentity glLogicOp glMatrixMode glMultiTexCoord2f glOrtho glPixelStorei glRasterPos2f glRasterPos4fv glReadBuffer glReadPixels glScissor glShaderSource glStencilFunc glStencilMask glStencilOp glTexCoord2f glTexEnvf glTexEnvi glTexImage2D glTexParameteri glUniform1f glUniform1i glUseProgram glVertex3f glVertex3i glViewport glXCreateContext glXCreatePixmap glXDestroyContext glXDestroyPixmap glXGetConfig glXGetFBConfigAttrib glXGetFBConfigs glXGetProcAddress glXGetVisualFromFBConfig glXMakeCurrent glXQueryDrawable glXQueryExtension glXQueryExtensionsString glXSwapBuffers glXWaitX
Also, are you able to build yourself if I supply a patch?
Not quickly but I can try.
comment:13 by , 7 years ago
Replying to michael:
I am not currently on a good Internet connection to check, but could you try the Additions-only build from the test builds page? It could be that the Additions images in the other test builds are older.
https://www.virtualbox.org/download/testcase/VBoxGuestAdditions_5.2.11-122125.iso
The above fixes the problem.
comment:14 by , 7 years ago
i.e. compton
still doesn't run (another undefined symbol), but the original symbol is present, and e.g. gnome starts. The error on compton now is:
gpassino@spring:~$ compton compton: symbol lookup error: compton: undefined symbol: glCheckFramebufferStatus
comment:17 by , 7 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Summary: | Ubuntu 17.10 + distro-vbox-guest 5.1.30 + compton => undef glFramebufferTexture2D -> fixed after (not in) 5.2.10 → Ubuntu 17.10 + distro-vbox-guest 5.1.30 + compton => undef glFramebufferTexture2D -> fixed in 5.2.12 |
Same on Ubuntu 18.04 with gnome-shell:
Here the objdump comparison (first mesa, second vbox):