glmark2 version2012.12 fails to build in Ubuntu12.04 with Pandaboard

Bug #1099153 reported by walter perdan on 2013-01-13
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
glmark2
Undecided
Unassigned

Bug Description

i configured as suggested in the INSTALL file here is it the config.log:

># project glmark2 (2012.12) configured on Sun Jan 13 17:26:54 2013 by
# waf 1.6.11 (abi 98, python 20703f0 on linux2)
# using ./waf configure [--enable-gl --enable-glesv2 --enable-gl-drm --enable-glesv2-drm --data-path=DATA_PATH --prefix=PREFIX]
#
----------------------------------------
Setting top to
/home/walter/glmark2-2012.12
----------------------------------------
Setting out to
/home/walter/glmark2-2012.12/build
----------------------------------------
Checking for 'gcc' (c compiler)
find program=['gcc', 'cc'] paths=['/usr/lib/lightdm/lightdm', '/usr/local/sbin', '/usr/local/bin', '/usr/sbin', '/usr/bin', '/sbin', '/bin', '/usr/games'] var='CC' -> '/usr/bin/gcc'
find program=['ar'] paths=['/usr/lib/lightdm/lightdm', '/usr/local/sbin', '/usr/local/bin', '/usr/sbin', '/usr/bin', '/sbin', '/bin', '/usr/games'] var='AR' -> '/usr/bin/ar'
/usr/bin/gcc
----------------------------------------
Checking for 'g++' (c++ compiler)
find program=['g++', 'c++'] paths=['/usr/lib/lightdm/lightdm', '/usr/local/sbin', '/usr/local/bin', '/usr/sbin', '/usr/bin', '/sbin', '/bin', '/usr/games'] var='CXX' -> '/usr/bin/g++'
(tool ar is already loaded, skipping)
/usr/bin/g++
----------------------------------------
Checking for header stdlib.h
==>
#include <stdlib.h>

int main() {
 return 0;
}

<==
[1/2] cxx: build/.conf_check_e2fbffd9cae974b6abf3d360c24cebe0/test.cpp -> build/.conf_check_e2fbffd9cae974b6abf3d360c24cebe0/testbuild/test.cpp.1.o

['/usr/bin/g++', '../test.cpp', '-c', '-o', 'test.cpp.1.o']
[2/2] cxxprogram: build/.conf_check_e2fbffd9cae974b6abf3d360c24cebe0/testbuild/test.cpp.1.o -> build/.conf_check_e2fbffd9cae974b6abf3d360c24cebe0/testbuild/testprog

['/usr/bin/g++', 'test.cpp.1.o', '-o', '/home/walter/glmark2-2012.12/build/.conf_check_e2fbffd9cae974b6abf3d360c24cebe0/testbuild/testprog', '-Wl,-Bstatic', '-Wl,-Bdynamic']
yes
----------------------------------------
Checking for header string.h
==>
#include <stdlib.h>
#include <string.h>

int main() {
 return 0;
}

<==
[1/2] cxx: build/.conf_check_23ed87d9b9d8e59e496eec91af1459cd/test.cpp -> build/.conf_check_23ed87d9b9d8e59e496eec91af1459cd/testbuild/test.cpp.1.o

['/usr/bin/g++', '-DHAVE_STDLIB_H=1', '../test.cpp', '-c', '-o', 'test.cpp.1.o']
[2/2] cxxprogram: build/.conf_check_23ed87d9b9d8e59e496eec91af1459cd/testbuild/test.cpp.1.o -> build/.conf_check_23ed87d9b9d8e59e496eec91af1459cd/testbuild/testprog

['/usr/bin/g++', 'test.cpp.1.o', '-o', '/home/walter/glmark2-2012.12/build/.conf_check_23ed87d9b9d8e59e496eec91af1459cd/testbuild/testprog', '-Wl,-Bstatic', '-Wl,-Bdynamic']
yes
----------------------------------------
Checking for header unistd.h
==>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

int main() {
 return 0;
}

<==
[1/2] cxx: build/.conf_check_10daf2d28530ff3832b59d646cb85c08/test.cpp -> build/.conf_check_10daf2d28530ff3832b59d646cb85c08/testbuild/test.cpp.1.o

['/usr/bin/g++', '-DHAVE_STDLIB_H=1', '-DHAVE_STRING_H=1', '../test.cpp', '-c', '-o', 'test.cpp.1.o']
[2/2] cxxprogram: build/.conf_check_10daf2d28530ff3832b59d646cb85c08/testbuild/test.cpp.1.o -> build/.conf_check_10daf2d28530ff3832b59d646cb85c08/testbuild/testprog

['/usr/bin/g++', 'test.cpp.1.o', '-o', '/home/walter/glmark2-2012.12/build/.conf_check_10daf2d28530ff3832b59d646cb85c08/testbuild/testprog', '-Wl,-Bstatic', '-Wl,-Bdynamic']
yes
----------------------------------------
Checking for header stdint.h
==>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <stdint.h>

int main() {
 return 0;
}

<==
[1/2] cxx: build/.conf_check_6399d597374bb0edfdf4b2dae4689790/test.cpp -> build/.conf_check_6399d597374bb0edfdf4b2dae4689790/testbuild/test.cpp.1.o

['/usr/bin/g++', '-DHAVE_STDLIB_H=1', '-DHAVE_STRING_H=1', '-DHAVE_UNISTD_H=1', '../test.cpp', '-c', '-o', 'test.cpp.1.o']
[2/2] cxxprogram: build/.conf_check_6399d597374bb0edfdf4b2dae4689790/testbuild/test.cpp.1.o -> build/.conf_check_6399d597374bb0edfdf4b2dae4689790/testbuild/testprog

['/usr/bin/g++', 'test.cpp.1.o', '-o', '/home/walter/glmark2-2012.12/build/.conf_check_6399d597374bb0edfdf4b2dae4689790/testbuild/testprog', '-Wl,-Bstatic', '-Wl,-Bdynamic']
yes
----------------------------------------
Checking for header stdio.h
==>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <stdint.h>
#include <stdio.h>

int main() {
 return 0;
}

<==
[1/2] cxx: build/.conf_check_f3a3b145ba639f3663b2d617236a8b4d/test.cpp -> build/.conf_check_f3a3b145ba639f3663b2d617236a8b4d/testbuild/test.cpp.1.o

['/usr/bin/g++', '-DHAVE_STDLIB_H=1', '-DHAVE_STRING_H=1', '-DHAVE_UNISTD_H=1', '-DHAVE_STDINT_H=1', '../test.cpp', '-c', '-o', 'test.cpp.1.o']
[2/2] cxxprogram: build/.conf_check_f3a3b145ba639f3663b2d617236a8b4d/testbuild/test.cpp.1.o -> build/.conf_check_f3a3b145ba639f3663b2d617236a8b4d/testbuild/testprog

['/usr/bin/g++', 'test.cpp.1.o', '-o', '/home/walter/glmark2-2012.12/build/.conf_check_f3a3b145ba639f3663b2d617236a8b4d/testbuild/testprog', '-Wl,-Bstatic', '-Wl,-Bdynamic']
yes
----------------------------------------
Checking for header jpeglib.h
==>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <stdint.h>
#include <stdio.h>
#include <jpeglib.h>

int main() {
 return 0;
}

<==
[1/2] cxx: build/.conf_check_cc45028120ea8bd2b412e34d51ebd39b/test.cpp -> build/.conf_check_cc45028120ea8bd2b412e34d51ebd39b/testbuild/test.cpp.1.o

['/usr/bin/g++', '-DHAVE_STDLIB_H=1', '-DHAVE_STRING_H=1', '-DHAVE_UNISTD_H=1', '-DHAVE_STDINT_H=1', '-DHAVE_STDIO_H=1', '../test.cpp', '-c', '-o', 'test.cpp.1.o']
[2/2] cxxprogram: build/.conf_check_cc45028120ea8bd2b412e34d51ebd39b/testbuild/test.cpp.1.o -> build/.conf_check_cc45028120ea8bd2b412e34d51ebd39b/testbuild/testprog

['/usr/bin/g++', 'test.cpp.1.o', '-o', '/home/walter/glmark2-2012.12/build/.conf_check_cc45028120ea8bd2b412e34d51ebd39b/testbuild/testprog', '-Wl,-Bstatic', '-Wl,-Bdynamic']
yes
----------------------------------------
Checking for library m
==>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <stdint.h>
#include <stdio.h>
#include <jpeglib.h>

int main() {
 return 0;
}

<==
[1/2] cxx: build/.conf_check_4505a5798a59aab199df57ed61ebd50e/test.cpp -> build/.conf_check_4505a5798a59aab199df57ed61ebd50e/testbuild/test.cpp.1.o

['/usr/bin/g++', '-DHAVE_STDLIB_H=1', '-DHAVE_STRING_H=1', '-DHAVE_UNISTD_H=1', '-DHAVE_STDINT_H=1', '-DHAVE_STDIO_H=1', '-DHAVE_JPEGLIB_H=1', '../test.cpp', '-c', '-o', 'test.cpp.1.o']
[2/2] cxxprogram: build/.conf_check_4505a5798a59aab199df57ed61ebd50e/testbuild/test.cpp.1.o -> build/.conf_check_4505a5798a59aab199df57ed61ebd50e/testbuild/testprog

['/usr/bin/g++', 'test.cpp.1.o', '-o', '/home/walter/glmark2-2012.12/build/.conf_check_4505a5798a59aab199df57ed61ebd50e/testbuild/testprog', '-Wl,-Bstatic', '-Wl,-Bdynamic', '-lm']
yes
----------------------------------------
Checking for library jpeg
==>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <stdint.h>
#include <stdio.h>
#include <jpeglib.h>

int main() {
 return 0;
}

<==
[1/2] cxx: build/.conf_check_6afabd87331f0418786d654c4f0db315/test.cpp -> build/.conf_check_6afabd87331f0418786d654c4f0db315/testbuild/test.cpp.1.o

['/usr/bin/g++', '-DHAVE_STDLIB_H=1', '-DHAVE_STRING_H=1', '-DHAVE_UNISTD_H=1', '-DHAVE_STDINT_H=1', '-DHAVE_STDIO_H=1', '-DHAVE_JPEGLIB_H=1', '../test.cpp', '-c', '-o', 'test.cpp.1.o']
[2/2] cxxprogram: build/.conf_check_6afabd87331f0418786d654c4f0db315/testbuild/test.cpp.1.o -> build/.conf_check_6afabd87331f0418786d654c4f0db315/testbuild/testprog

['/usr/bin/g++', 'test.cpp.1.o', '-o', '/home/walter/glmark2-2012.12/build/.conf_check_6afabd87331f0418786d654c4f0db315/testbuild/testprog', '-Wl,-Bstatic', '-Wl,-Bdynamic', '-ljpeg']
yes
----------------------------------------
Checking for function memset
==>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <stdint.h>
#include <stdio.h>
#include <jpeglib.h>
#include <string.h>

 int main() {
 void *p;
 p=(void*)(memset);
 return 0;
}

<==
[1/2] cxx: build/.conf_check_e391cd46435f78ed21d1462f87367f9b/test.cpp -> build/.conf_check_e391cd46435f78ed21d1462f87367f9b/testbuild/test.cpp.1.o

['/usr/bin/g++', '-DHAVE_STDLIB_H=1', '-DHAVE_STRING_H=1', '-DHAVE_UNISTD_H=1', '-DHAVE_STDINT_H=1', '-DHAVE_STDIO_H=1', '-DHAVE_JPEGLIB_H=1', '../test.cpp', '-c', '-o', 'test.cpp.1.o']
[2/2] cxxprogram: build/.conf_check_e391cd46435f78ed21d1462f87367f9b/testbuild/test.cpp.1.o -> build/.conf_check_e391cd46435f78ed21d1462f87367f9b/testbuild/testprog

['/usr/bin/g++', 'test.cpp.1.o', '-o', '/home/walter/glmark2-2012.12/build/.conf_check_e391cd46435f78ed21d1462f87367f9b/testbuild/testprog', '-Wl,-Bstatic', '-Wl,-Bdynamic']
yes
----------------------------------------
Checking for function sqrt
==>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <stdint.h>
#include <stdio.h>
#include <jpeglib.h>
#include <math.h>

 int main() {
 void *p;
 p=(void*)(sqrt);
 return 0;
}

<==
[1/2] cxx: build/.conf_check_146ca69a2a8f62a0c06bc7571dfcc4dc/test.cpp -> build/.conf_check_146ca69a2a8f62a0c06bc7571dfcc4dc/testbuild/test.cpp.1.o

['/usr/bin/g++', '-DHAVE_STDLIB_H=1', '-DHAVE_STRING_H=1', '-DHAVE_UNISTD_H=1', '-DHAVE_STDINT_H=1', '-DHAVE_STDIO_H=1', '-DHAVE_JPEGLIB_H=1', '-DHAVE_MEMSET=1', '../test.cpp', '-c', '-o', 'test.cpp.1.o']
[2/2] cxxprogram: build/.conf_check_146ca69a2a8f62a0c06bc7571dfcc4dc/testbuild/test.cpp.1.o -> build/.conf_check_146ca69a2a8f62a0c06bc7571dfcc4dc/testbuild/testprog

['/usr/bin/g++', 'test.cpp.1.o', '-o', '/home/walter/glmark2-2012.12/build/.conf_check_146ca69a2a8f62a0c06bc7571dfcc4dc/testbuild/testprog', '-Wl,-Bstatic', '-Wl,-Bdynamic', '-lm']
yes
----------------------------------------
Checking for program pkg-config
/usr/bin/pkg-config
find program=['pkg-config'] paths=['/usr/lib/lightdm/lightdm', '/usr/local/sbin', '/usr/local/bin', '/usr/sbin', '/usr/bin', '/sbin', '/bin', '/usr/games'] var='PKGCONFIG' -> '/usr/bin/pkg-config'
----------------------------------------
Checking for 'libpng12'
['/usr/bin/pkg-config', 'libpng12', '--cflags', '--libs']
out: -I/usr/include/libpng12 -lpng12

yes
----------------------------------------
Checking for 'x11'
['/usr/bin/pkg-config', 'x11', '--cflags', '--libs']
out: -lX11

yes
----------------------------------------
Checking for 'gl'
['/usr/bin/pkg-config', 'gl', '--cflags', '--libs']
out: -lGL

yes
----------------------------------------
Checking for 'egl'
['/usr/bin/pkg-config', 'egl', '--cflags', '--libs']
out: -lEGL

yes
----------------------------------------
Checking for 'glesv2'
['/usr/bin/pkg-config', 'glesv2', '--cflags', '--libs']
out: -lGLESv2

yes
----------------------------------------
Checking for 'libdrm'
['/usr/bin/pkg-config', 'libdrm', '--cflags', '--libs']
out: -I/usr/include/libdrm -ldrm

yes
----------------------------------------
Checking for 'gbm'
['/usr/bin/pkg-config', 'gbm', '--cflags', '--libs']
out: -I/usr/include/gbm -lgbm

yes
----------------------------------------
Prefix
/home/walter/glmark2-2012.12/PREFIX]
----------------------------------------
Data path
DATA_PATH
----------------------------------------
Including extras
No
----------------------------------------
Building X11 GL2 version
No
----------------------------------------
Building X11 GLESv2 version
Yes
----------------------------------------
Building DRM GL2 version
Yes
----------------------------------------
Building DRM GLESv2 version
Yes

and after i launched ./waf

>[ 61/191] cxx: src/canvas-x11-egl.cpp -> build/src/canvas-x11-egl.cpp.2.o
../src/canvas-x11-egl.cpp: In member function ‘virtual bool CanvasX11EGL::init_gl_winsys()’:
../src/canvas-x11-egl.cpp:37:44: error: invalid conversion from ‘Display* {aka _XDisplay*}’ to ‘EGLNativeDisplayType {aka int}’ [-fpermissive]
../src/egl-state.h:142:10: error: initializing argument 1 of ‘bool EGLState::init_display(EGLNativeDisplayType, GLVisualConfig&)’ [-fpermissive]
../src/canvas-x11-egl.cpp: In member function ‘virtual bool CanvasX11EGL::make_current()’:
../src/canvas-x11-egl.cpp:70:28: error: invalid conversion from ‘Window {aka long unsigned int}’ to ‘EGLNativeWindowType {aka void*}’ [-fpermissive]
../src/egl-state.h:143:10: error: initializing argument 1 of ‘bool EGLState::init_surface(EGLNativeWindowType)’ [-fpermissive]
Waf: Leaving directory `/home/walter/glmark2-2012.12/build'
Build failed
 -> task in 'glmark2-es2' failed (exit status 1):
 {task 28200400: cxx canvas-x11-egl.cpp -> canvas-x11-egl.cpp.2.o}
['/usr/bin/g++', '-g', '-O2', '-Werror', '-Wall', '-Wextra', '-Wnon-virtual-dtor', '-I/home/walter/glmark2-2012.12/build/src', '-I/home/walter/glmark2-2012.12/src', '-I/home/walter/glmark2-2012.12/build/src/scene-ideas', '-I/home/walter/glmark2-2012.12/src/scene-ideas', '-I/home/walter/glmark2-2012.12/build/src/scene-terrain', '-I/home/walter/glmark2-2012.12/src/scene-terrain', '-I/home/walter/glmark2-2012.12/build/src/libmatrix', '-I/home/walter/glmark2-2012.12/src/libmatrix', '-I/usr/include/libpng12', '-DHAVE_STDLIB_H=1', '-DHAVE_STRING_H=1', '-DHAVE_UNISTD_H=1', '-DHAVE_STDINT_H=1', '-DHAVE_STDIO_H=1', '-DHAVE_JPEGLIB_H=1', '-DHAVE_MEMSET=1', '-DHAVE_SQRT=1', '-DHAVE_LIBPNG12=1', '-DHAVE_X11=1', '-DHAVE_GL=1', '-DHAVE_EGL=1', '-DHAVE_GLESV2=1', '-DHAVE_DRM=1', '-DHAVE_GBM=1', '-DGLMARK_DATA_PATH="DATA_PATH"', '-DGLMARK_VERSION="2012.12"', '-DUSE_GLESv2', '-DUSE_EXCEPTIONS', '../src/canvas-x11-egl.cpp', '-c', '-o', 'src/canvas-x11-egl.cpp.2.o']

installing glmark2-es2 with synaptic instead i haven't had any problems . Launched the app give me a benchmark of 88.
I would to test the downloaded code because i saw more GLSL examples as i want to learn it in GLES.
Thanks
Walter

Jesse Barker (jesse-barker) wrote :

Where does your eglplatform.h come from? Those definitions look wrong (possibly the header is fine and something is wildly misdefined in the build). In an X11 environment, EGLNativeDisplayType should be Display* and EGLNativeWindowType should be Window. The definitions in your log file make it look like the build is somehow configured for Symbian (which definitely won't work).

Also, and hopefully unrelated, unless you have special (unreleaseed) powervr drivers that allow you to render to the DRM canvas, you don't need to enable the DRM flavors of the build for pandaboard.

cheers,
Jesse

Alexandros Frantzis (afrantzis) wrote :

The eglplatform.h file shipped with the pvr drivers needs to have 'SUPPORT_X11' defined to enable the X11 specific typedefs. The attached patch defines SUPPORT_X11 when building the gles2 (x11) flavor and solves the problem.

The glmark2 packages in the repositories are built using the mesa headers, so they don't have this problem.

I am still not sure what's the best way to solve this problem permanently, as there isn't (AFAIK) a standard way to have multi-platform egl support in the headers. Perhaps this should be solved at the pkgconfig level, e.g. if there were egl-<winsys>.pc files (e.g. egl-x11.pc) then each program could ask for and get the appropriate flags to compile with.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers