GNOME Bugzilla – Bug 791956
cerbero build fails on GstGL-1.0.gir
Last modified: 2017-12-27 09:36:31 UTC
Runing cerbero on Unbuntu 16.04,build for linux: (The failure occurred after GL was moved from bad to base.:) make[1]: Leaving directory '/home/shakin/work/src/ssc/gstreamer/cerbero/build/sources/linux_x86_64/gst-plugins-base-1.0-1.13.0.1/gst-libs/gst/gl/egl' make[1]: Entering directory '/home/shakin/work/src/ssc/gstreamer/cerbero/build/sources/linux_x86_64/gst-plugins-base-1.0-1.13.0.1/gst-libs/gst/gl' PKG_CONFIG_PATH="../../../pkgconfig:/home/shakin/work/src/ssc/gstreamer/cerbero/build/dist/linux_x86_64/lib/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig" GI_SCANNER_DISABLE_CACHE=yes\ GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \ CPPFLAGS="-Wno-error " CFLAGS="-Wall -g -O2 -m64 -Wall -g -O2 -m64 -Wno-error -DGSTREAMER_GLIB_COCOA_NSAPPLICATION=1 " LDFLAGS="-L/home/shakin/work/src/ssc/gstreamer/cerbero/build/dist/linux_x86_64/lib -m64 -m64 " CC="gcc" PKG_CONFIG="/home/shakin/work/src/ssc/gstreamer/cerbero/build/build-tools/bin/pkg-config" DLLTOOL="false" \ /home/shakin/work/src/ssc/gstreamer/cerbero/build/dist/linux_x86_64/bin/g-ir-scanner -v --namespace GstGL \ --nsversion=1.0 \ --identifier-prefix=Gst \ --symbol-prefix=gst \ --warn-all \ --c-include "gst/gl/gl.h" \ -I../../../gst-libs \ -I../../../gst-libs \ -I../../../gst-libs -I../../../gst-libs \ -I/usr/include/libdrm \ --add-include-path=`PKG_CONFIG_PATH="../../../pkgconfig:/home/shakin/work/src/ssc/gstreamer/cerbero/build/dist/linux_x86_64/lib/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig" /home/shakin/work/src/ssc/gstreamer/cerbero/build/build-tools/bin/pkg-config --variable=girdir gstreamer-1.0` \ --add-include-path=`PKG_CONFIG_PATH="../../../pkgconfig:/home/shakin/work/src/ssc/gstreamer/cerbero/build/dist/linux_x86_64/lib/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig" /home/shakin/work/src/ssc/gstreamer/cerbero/build/build-tools/bin/pkg-config --variable=girdir gstreamer-base-1.0` \ --add-include-path=`PKG_CONFIG_PATH="../../../pkgconfig:/home/shakin/work/src/ssc/gstreamer/cerbero/build/dist/linux_x86_64/lib/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig" /home/shakin/work/src/ssc/gstreamer/cerbero/build/build-tools/bin/pkg-config --variable=girdir gstreamer-video-1.0` \ --library=libgstgl-1.0.la \ --include=Gst-1.0 \ --include=GstBase-1.0 \ --include=GstVideo-1.0 \ --libtool="../../../libtool" \ --pkg gstreamer-1.0 \ --pkg gstreamer-base-1.0 \ --pkg gstreamer-video-1.0 \ --pkg-export gstreamer-gl-1.0 \ --add-init-section="extern void gst_init(gint*,gchar**); gst_init(NULL,NULL);" \ --output GstGL-1.0.gir \ ./gstglwindow.h ./gstgldisplay.h ./gstglcontext.h ./gstgldebug.h ./gstglbasememory.h ./gstglbuffer.h ./gstglmemory.h ./gstglmemorypbo.h ./gstglrenderbuffer.h ./gstglbufferpool.h ./gstglfilter.h ./gstglformat.h ./gstglfuncs.h ./gstglbasefilter.h ./gstglshader.h ./gstglshaderstrings.h ./gstglsl.h ./gstglslstage.h ./gstglcolorconvert.h ./gstglupload.h ./gstglapi.h ./gstglfeature.h ./gstglutils.h ./gstglframebuffer.h ./gstglsyncmeta.h ./gstglviewconvert.h ./gstgloverlaycompositor.h ./gstglquery.h ./gstgl_fwd.h ./gstgl_enums.h ./gl.h \ ./gstgldisplay.c ./gstglcontext.c ./gstgldebug.c ./gstglbasememory.c ./gstglbuffer.c ./gstglmemory.c ./gstglmemorypbo.c ./gstglrenderbuffer.c ./gstglbufferpool.c ./gstglfilter.c ./gstglformat.c ./gstglbasefilter.c ./gstglshader.c ./gstglshaderstrings.c ./gstglsl.c ./gstglslstage.c ./gstglcolorconvert.c ./gstglupload.c ./gstglwindow.c ./gstglapi.c ./gstglfeature.c ./gstglutils.c ./gstglframebuffer.c ./gstglsyncmeta.c ./gstglviewconvert.c ./gstgloverlaycompositor.c ./gstglquery.c /usr/include/GL/gl.h:1516: syntax error, unexpected typedef-name, expecting identifier or '(' in 'typedef void ( * PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);' at 'PFNGLDRAWRANGEELEMENTSPROC' ... /usr/include/GL/glext.h:9550: syntax error, unexpected typedef-name, expecting identifier or '(' in 'typedef void ( * PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);' at 'PFNGLFRAMEBUFFERTEXTUREEXTPROC' /usr/include/GL/glext.h:9550: syntax error, unexpected typedef-name, expecting identifier or '(' or '*' in 'typedef void ( * PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);' at 'GLenum' /usr/include/GL/glext.h:9550: syntax error, unexpected typedef-name, expecting identifier or '(' or '*' in 'typedef void ( * PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);' at 'GLuint' /usr/include/GL/glext.h:9550: syntax error, unexpected typedef-name, expecting identifier or '(' or '*' in 'typedef void ( * PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);' at 'GLint' g-ir-scanner: link: ../../../libtool --mode=link --tag=CC gcc -o /home/shakin/work/src/ssc/gstreamer/cerbero/build/sources/linux_x86_64/gst-plugins-base-1.0-1.13.0.1/gst-libs/gst/gl/tmp-introspect3JQewa/GstGL-1.0 -export-dynamic -Wno-error -Wall -g -O2 -m64 -Wall -g -O2 -m64 -Wno-error -DGSTREAMER_GLIB_COCOA_NSAPPLICATION=1 /home/shakin/work/src/ssc/gstreamer/cerbero/build/sources/linux_x86_64/gst-plugins-base-1.0-1.13.0.1/gst-libs/gst/gl/tmp-introspect3JQewa/GstGL-1.0.o -L. libgstgl-1.0.la -L/home/shakin/work/src/ssc/gstreamer/cerbero/build/sources/linux_x86_64/gst-plugins-base-1.0-1.13.0.1/gst-libs/gst/video/.libs -L/home/shakin/work/src/ssc/gstreamer/cerbero/build/dist/linux_x86_64/lib -lgio-2.0 -Wl,--export-dynamic -lgmodule-2.0 -pthread -lgstvideo-1.0 -lgstbase-1.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0 -L/home/shakin/work/src/ssc/gstreamer/cerbero/build/dist/linux_x86_64/lib -m64 -m64 libtool: link: gcc -o /home/shakin/work/src/ssc/gstreamer/cerbero/build/sources/linux_x86_64/gst-plugins-base-1.0-1.13.0.1/gst-libs/gst/gl/tmp-introspect3JQewa/.libs/GstGL-1.0 -Wno-error -Wall -g -O2 -m64 -Wall -g -O2 -m64 -Wno-error -DGSTREAMER_GLIB_COCOA_NSAPPLICATION=1 /home/shakin/work/src/ssc/gstreamer/cerbero/build/sources/linux_x86_64/gst-plugins-base-1.0-1.13.0.1/gst-libs/gst/gl/tmp-introspect3JQewa/GstGL-1.0.o -Wl,--export-dynamic -pthread -m64 -m64 -Wl,--export-dynamic -L/home/shakin/work/src/ssc/gstreamer/cerbero/build/sources/linux_x86_64/gst-plugins-base-1.0-1.13.0.1/gst-libs/gst/video/.libs -L. ./.libs/libgstgl-1.0.so -L/home/shakin/work/src/ssc/gstreamer/cerbero/build/dist/linux_x86_64/lib -L/usr/lib/x86_64-linux-gnu -lgstallocators-1.0 -lGL -lGLESv2 -lX11-xcb -lX11 -lxcb -lwayland-cursor -lwayland-egl -lwayland-client -lEGL /home/shakin/work/src/ssc/gstreamer/cerbero/build/sources/linux_x86_64/gst-plugins-base-1.0-1.13.0.1/gst-libs/gst/allocators/.libs/libgstallocators-1.0.so /home/shakin/work/src/ssc/gstreamer/cerbero/build/dist/linux_x86_64/lib/libgio-2.0.so /home/shakin/work/src/ssc/gstreamer/cerbero/build/dist/linux_x86_64/lib/libz.so -lresolv /home/shakin/work/src/ssc/gstreamer/cerbero/build/sources/linux_x86_64/gst-plugins-base-1.0-1.13.0.1/gst-libs/gst/video/.libs/libgstvideo-1.0.so /home/shakin/work/src/ssc/gstreamer/cerbero/build/dist/linux_x86_64/lib/liborc-0.4.so /home/shakin/work/src/ssc/gstreamer/cerbero/build/dist/linux_x86_64/lib/libgstbase-1.0.so /home/shakin/work/src/ssc/gstreamer/cerbero/build/dist/linux_x86_64/lib/libgstreamer-1.0.so /home/shakin/work/src/ssc/gstreamer/cerbero/build/dist/linux_x86_64/lib/libgmodule-2.0.so -lm -lrt -ldl /home/shakin/work/src/ssc/gstreamer/cerbero/build/dist/linux_x86_64/lib/libgobject-2.0.so /home/shakin/work/src/ssc/gstreamer/cerbero/build/dist/linux_x86_64/lib/libffi.so /home/shakin/work/src/ssc/gstreamer/cerbero/build/dist/linux_x86_64/lib/libglib-2.0.so -lpthread -pthread -Wl,-rpath -Wl,/home/shakin/work/src/ssc/gstreamer/cerbero/build/dist/linux_x86_64/lib /usr/bin/ld: cannot find -lgstallocators-1.0 collect2: error: ld returned 1 exit status linking of temporary binary failed: Command '[u'../../../libtool', u'--mode=link', u'--tag=CC', 'gcc', u'-o', u'/home/shakin/work/src/ssc/gstreamer/cerbero/build/sources/linux_x86_64/gst-plugins-base-1.0-1.13.0.1/gst-libs/gst/gl/tmp-introspect3JQewa/GstGL-1.0', u'-export-dynamic', '-Wno-error', '-Wall', '-g', '-O2', '-m64', '-Wall', '-g', '-O2', '-m64', '-Wno-error', '-DGSTREAMER_GLIB_COCOA_NSAPPLICATION=1', u'/home/shakin/work/src/ssc/gstreamer/cerbero/build/sources/linux_x86_64/gst-plugins-base-1.0-1.13.0.1/gst-libs/gst/gl/tmp-introspect3JQewa/GstGL-1.0.o', '-L.', 'libgstgl-1.0.la', u'-L/home/shakin/work/src/ssc/gstreamer/cerbero/build/sources/linux_x86_64/gst-plugins-base-1.0-1.13.0.1/gst-libs/gst/video/.libs', u'-L/home/shakin/work/src/ssc/gstreamer/cerbero/build/dist/linux_x86_64/lib', u'-lgio-2.0', u'-Wl,--export-dynamic', u'-lgmodule-2.0', u'-pthread', u'-lgstvideo-1.0', u'-lgstbase-1.0', u'-lgstreamer-1.0', u'-lgobject-2.0', u'-lglib-2.0', '-L/home/shakin/work/src/ssc/gstreamer/cerbero/build/dist/linux_x86_64/lib', '-m64', '-m64']' returned non-zero exit status 1 Makefile:1514: recipe for target 'GstGL-1.0.gir' failed make[1]: *** [GstGL-1.0.gir] Error 1 make[1]: Leaving directory '/home/shakin/work/src/ssc/gstreamer/cerbero/build/sources/linux_x86_64/gst-plugins-base-1.0-1.13.0.1/gst-libs/gst/gl' Makefile:1223: recipe for target 'all-recursive' failed make: *** [all-recursive] Error 1
Thanks for the bug report. The problem seems to be: /usr/bin/ld: cannot find -lgstallocators-1.0 Could you attach the full gst-plugins-base build log please? I wonder if it's a problem with the parallel subdir build / the subdir dependencies.
Hi Tim,thanks for your attention:). Okay, I'll attach a complete log tomorrow as soon as I get to work(the working computer is left in company...:),I currently use my phone), guess this may be related to this code: https://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst-libs/gst/gl/Makefile.am,line 130 if USE_EGL SUBDIRS += egl libgstgl_@GST_API_VERSION@_la_LIBADD += egl/libgstgl-egl.la libgstgl_@GST_API_VERSION@_la_LIBADD += -lgstallocators-$(GST_API_VERSION) endif
Well spotted. Let's see if this helps then: commit d679f752f1f1335d6506ed7a0b3030d7ddb35968 Author: Tim-Philipp Müller <tim@centricular.com> Date: Tue Dec 26 15:35:35 2017 +0100 gl: don't link to system gstallocators We already link to the in-tree gstallocators, no need to link to it again here, which also ends up being the system gstallocators lib. https://bugzilla.gnome.org/show_bug.cgi?id=791956
Created attachment 365993 [details] gst-plugins-base-build-log > commit d679f752f1f1335d6506ed7a0b3030d7ddb35968 > Author: Tim-Philipp Müller <tim@centricular.com> > Date: Tue Dec 26 15:35:35 2017 +0100 > > gl: don't link to system gstallocators > > We already link to the in-tree gstallocators, no need > to link to it again here, which also ends up being the > system gstallocators lib. > Thanks Tim,this submission fixes the link error. BTW,our build system seems hide some errors, I'm not sure if they're a "problem", but if you look at the compilation log, then you can see lots of error messages. --- /usr/include/GL/gl.h:1516: syntax error, unexpected typedef-name, expecting identifier or '(' in 'typedef void ( * PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);' at 'PFNGLDRAWRANGEELEMENTSPROC' /usr/include/GL/gl.h:1516: syntax error, unexpected typedef-name, expecting identifier or '(' or '*' in 'typedef void ( * PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);' at 'GLuint' /usr/include/GL/gl.h:1516: syntax error, unexpected typedef-name, expecting identifier or '(' or '*' in 'typedef void ( * PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);' at 'GLuint' ... ---- However, -base can compile successfully :).
Yeah, g-i doesn't have a proper C parser, the GL headers seem too much of a challenge for it. I don't know if it matters. It was the same in -bad though.