Bug#844357: fracplanet FTPFS on mips*: libQtOpenGL.so: undefined reference to `glLoadMatrixd'
Control: reassign -1 binutils 2.25-5 Control: severity -1 important Control: affects -1 src:fracplanet Control: retitle -1 binutils: mips* mesa libGL.so.1 contains an invalid symbol table Hi, On 14/11/16 19:08, Adrian Bunk wrote: > Package: fracplanet > Version: 0.4.0-5 > Severity: serious > > https://buildd.debian.org/status/package.php?p=fracplanet=sid > > g++ -g -O2 -fdebug-prefix-map=/«PKGBUILDDIR»=. -fstack-protector-strong > -Wformat -Werror=format-security -Wl,-z,relro -Wl,-O1 -o fracplanet > obj/common.o obj/control.o obj/control_about.o obj/control_render.o > obj/control_save.o obj/control_terrain.o obj/dialog_documentation.o > obj/fracplanet.o obj/fracplanet_main.o obj/geometry.o obj/image.o > obj/license.o obj/matrix33.o obj/matrix34.o obj/noise.o > obj/parameters_cloud.o obj/parameters_noise.o obj/parameters_object.o > obj/parameters_render.o obj/parameters_save.o obj/parameters_terrain.o > obj/progress.o obj/random.o obj/rgb.o obj/scan.o obj/spinbox.o obj/triangle.o > obj/triangle_edge.o obj/triangle_mesh.o obj/triangle_mesh_cloud.o > obj/triangle_mesh_terrain.o obj/triangle_mesh_viewer.o > obj/triangle_mesh_viewer_display.o obj/vertex.o obj/xyz.o > obj/moc_control_about.o obj/moc_control_render.o obj/moc_control_save.o > obj/moc_control_terrain.o obj/moc_dialog_documentation.o > obj/moc_fracplanet_main.o obj/moc_triangle_mesh_viewer.o obj/moc_triang > le_mesh_viewer_display.o-L/usr/lib/mips-linux-gnu -L/usr/X11R6/lib > -lboost_program_options -lGLU -lQtOpenGL -lQtGui -lQtCore -lGL -lpthread > /usr/lib/mips-linux-gnu/libQtOpenGL.so: undefined reference to `glLoadMatrixd' > > > Michael Biebl mentioned #844227 on IRC, are these bugs coincidence, > or is there something that broke/changed in Mesa on mips* recently? Looking at this a bit closer, it appears to be a longstanding binutils bug which was recently made worse due to a change in counting local symbols. Dumping the dynamic symbol table of libGL.so.1 on mipsel shows the first (long standing) bug: $ readelf --syms libGL.so.1 | head -n15 Symbol table '.dynsym' contains 1559 entries: Num:Value Size TypeBind Vis Ndx Name 0: 0 NOTYPE LOCAL DEFAULT UND 1: 000163c0 0 SECTION LOCAL DEFAULT 10 2: 000902a8 0 SECTION LOCAL DEFAULT 16 3: 0007264052 FUNCGLOBAL DEFAULT 11 glCheckFramebufferStatusE 4: 0006c47052 FUNCGLOBAL DEFAULT 11 glConvolutionFilter1D 5: 0007219828 FUNCGLOBAL DEFAULT 11 glVertexAttrib3fvARB 6: 0006b73052 FUNCGLOBAL DEFAULT 11 glLoadMatrixd 7: 000943d0 0 NOTYPE LOCAL DEFAULT 24 _fbss 8: 0006c6a052 FUNCGLOBAL DEFAULT 11 glGetConvolutionParameter 9: 0006973052 FUNCGLOBAL DEFAULT 11 glVertex4i 10: 0006ebe052 FUNCGLOBAL DEFAULT 11 glGetBufferPointervARB 11: 0006e3d828 FUNCGLOBAL DEFAULT 11 glWindowPos2f Here the _fbss symbol is LOCAL which is prohibited by the ELF standard which requires all LOCAL symbols to precede GLOBAL symbols. This bug is definitely present in jessie's binutils, because jessie's libGL also has a symbol table similar to this. Wheezy's mesa doesn't have this bug but I don't know if binutils definitely doesn't have it in wheezy. Ordinarily this wasn't much of an issue since glibc and ld would just skip LOCAL symbols when processing the symbol tables. However somewhere between binutils 2.27-9 and 2.27.51.20161108-1 the behavior for calculating the 'st_info' field for the .dynsym section header changed. Recompiling mesa with both versions of binutils gives identical libGL binaries except for this difference in the section header: diffoscope output (- 2.27-9, + 2.27.51.20161108-1): │ - [ 5] .dynsym DYNSYM 2e40 002e40 009228 18 A 6 3 8 │ + [ 5] .dynsym DYNSYM 2e40 002e40 009228 18 A 6 9 8 Here 3 = the index of the first non-global symbol, and 9 = the total number of local symbols. These values should of course be equal if the rules about symbol ordering were followed. ld uses the value of the 'st_info' field to skip LOCAL symbols when linking, which explains why only the 5 symbols from 3-8 in the above symbol table cause link errors. I'm still investigating, but getting a reduced testcase is quite tricky and recompiling mesa on mips takes about an hour. Thanks, James signature.asc Description: OpenPGP digital signature
Bug#844357: fracplanet FTPFS on mips*: libQtOpenGL.so: undefined reference to `glLoadMatrixd'
On lunes, 14 de noviembre de 2016 21:08:33 ART Adrian Bunk wrote: > Package: fracplanet > Version: 0.4.0-5 > Severity: serious > > https://buildd.debian.org/status/package.php?p=fracplanet=sid > > g++ -g -O2 -fdebug-prefix-map=/«PKGBUILDDIR»=. -fstack-protector-strong > -Wformat -Werror=format-security -Wl,-z,relro -Wl,-O1 -o fracplanet > obj/common.o obj/control.o obj/control_about.o obj/control_render.o > obj/control_save.o obj/control_terrain.o obj/dialog_documentation.o > obj/fracplanet.o obj/fracplanet_main.o obj/geometry.o obj/image.o > obj/license.o obj/matrix33.o obj/matrix34.o obj/noise.o > obj/parameters_cloud.o obj/parameters_noise.o obj/parameters_object.o > obj/parameters_render.o obj/parameters_save.o obj/parameters_terrain.o > obj/progress.o obj/random.o obj/rgb.o obj/scan.o obj/spinbox.o > obj/triangle.o obj/triangle_edge.o obj/triangle_mesh.o > obj/triangle_mesh_cloud.o obj/triangle_mesh_terrain.o > obj/triangle_mesh_viewer.o obj/triangle_mesh_viewer_display.o obj/vertex.o > obj/xyz.o obj/moc_control_about.o obj/moc_control_render.o > obj/moc_control_save.o obj/moc_control_terrain.o > obj/moc_dialog_documentation.o obj/moc_fracplanet_main.o > obj/moc_triangle_mesh_viewer.o obj/moc_triang le_mesh_viewer_display.o > -L/usr/lib/mips-linux-gnu -L/usr/X11R6/lib -lboost_program_options -lGLU > -lQtOpenGL -lQtGui -lQtCore -lGL -lpthread > /usr/lib/mips-linux-gnu/libQtOpenGL.so: undefined reference to > `glLoadMatrixd' > > > Michael Biebl mentioned #844227 on IRC, are these bugs coincidence, > or is there something that broke/changed in Mesa on mips* recently? Or binutils or some other part of the toolchain. From the Qt side we have the same reply as the mesa maintainers: we do keep symbols files and the packages will FTBFS if the symbols dissapeared, so no, there must be something else going on. -- She got her good looks from her father. He's a plastic surgeon. -- Groucho Marx Lisandro Damián Nicanor Pérez Meyer http://perezmeyer.com.ar/ http://perezmeyer.blogspot.com/ signature.asc Description: This is a digitally signed message part.
Bug#844357: fracplanet FTPFS on mips*: libQtOpenGL.so: undefined reference to `glLoadMatrixd'
On 14/11/16 20:08, Adrian Bunk wrote: > Package: fracplanet > Version: 0.4.0-5 > Severity: serious > > https://buildd.debian.org/status/package.php?p=fracplanet=sid > > g++ -g -O2 -fdebug-prefix-map=/«PKGBUILDDIR»=. -fstack-protector-strong > -Wformat -Werror=format-security -Wl,-z,relro -Wl,-O1 -o fracplanet > obj/common.o obj/control.o obj/control_about.o obj/control_render.o > obj/control_save.o obj/control_terrain.o obj/dialog_documentation.o > obj/fracplanet.o obj/fracplanet_main.o obj/geometry.o obj/image.o > obj/license.o obj/matrix33.o obj/matrix34.o obj/noise.o > obj/parameters_cloud.o obj/parameters_noise.o obj/parameters_object.o > obj/parameters_render.o obj/parameters_save.o obj/parameters_terrain.o > obj/progress.o obj/random.o obj/rgb.o obj/scan.o obj/spinbox.o obj/triangle.o > obj/triangle_edge.o obj/triangle_mesh.o obj/triangle_mesh_cloud.o > obj/triangle_mesh_terrain.o obj/triangle_mesh_viewer.o > obj/triangle_mesh_viewer_display.o obj/vertex.o obj/xyz.o > obj/moc_control_about.o obj/moc_control_render.o obj/moc_control_save.o > obj/moc_control_terrain.o obj/moc_dialog_documentation.o > obj/moc_fracplanet_main.o obj/moc_triangle_mesh_viewer.o obj/moc_triang > le_mesh_viewer_display.o-L/usr/lib/mips-linux-gnu -L/usr/X11R6/lib > -lboost_program_options -lGLU -lQtOpenGL -lQtGui -lQtCore -lGL -lpthread > /usr/lib/mips-linux-gnu/libQtOpenGL.so: undefined reference to `glLoadMatrixd' > > > Michael Biebl mentioned #844227 on IRC, are these bugs coincidence, > or is there something that broke/changed in Mesa on mips* recently? There is most likely something broken in mesa or lower in the stack. Please don't open bugs for this build failure (which is affecting several packages) until that is investigated. Emilio
Bug#844357: fracplanet FTPFS on mips*: libQtOpenGL.so: undefined reference to `glLoadMatrixd'
Package: fracplanet Version: 0.4.0-5 Severity: serious https://buildd.debian.org/status/package.php?p=fracplanet=sid g++ -g -O2 -fdebug-prefix-map=/«PKGBUILDDIR»=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-O1 -o fracplanet obj/common.o obj/control.o obj/control_about.o obj/control_render.o obj/control_save.o obj/control_terrain.o obj/dialog_documentation.o obj/fracplanet.o obj/fracplanet_main.o obj/geometry.o obj/image.o obj/license.o obj/matrix33.o obj/matrix34.o obj/noise.o obj/parameters_cloud.o obj/parameters_noise.o obj/parameters_object.o obj/parameters_render.o obj/parameters_save.o obj/parameters_terrain.o obj/progress.o obj/random.o obj/rgb.o obj/scan.o obj/spinbox.o obj/triangle.o obj/triangle_edge.o obj/triangle_mesh.o obj/triangle_mesh_cloud.o obj/triangle_mesh_terrain.o obj/triangle_mesh_viewer.o obj/triangle_mesh_viewer_display.o obj/vertex.o obj/xyz.o obj/moc_control_about.o obj/moc_control_render.o obj/moc_control_save.o obj/moc_control_terrain.o obj/moc_dialog_documentation.o obj/moc_fracplanet_main.o obj/moc_triangle_mesh_viewer.o obj/moc_triang le_mesh_viewer_display.o-L/usr/lib/mips-linux-gnu -L/usr/X11R6/lib -lboost_program_options -lGLU -lQtOpenGL -lQtGui -lQtCore -lGL -lpthread /usr/lib/mips-linux-gnu/libQtOpenGL.so: undefined reference to `glLoadMatrixd' Michael Biebl mentioned #844227 on IRC, are these bugs coincidence, or is there something that broke/changed in Mesa on mips* recently?