Summary: | OpenGL ES2 with fbdev - link error | ||
---|---|---|---|
Product: | Mesa | Reporter: | Christian Prochaska <christian.prochaska> |
Component: | EGL | Assignee: | mesa-dev |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | medium | ||
Version: | 10.0 | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
mapi/es2api: unconditionaly link against glapi/glapi.la
configure: use shared-glapi when more than one gl* API is used |
Description
Christian Prochaska
2014-02-17 14:55:48 UTC
Created attachment 94216 [details] [review] mapi/es2api: unconditionaly link against glapi/glapi.la Hi Christian, thanks for the report. I must admit that these are rather unusual configure flags, which are not tested too often. * Are you able to use the libGLESv2.so library, (eg. use a precompiled es2gears)? I'm assuming that is not the case. With that said, the attached patch should help, although I'm not sure if it's the correct solution as the api dispatch is out of my current scope :-) Hi Emil, (In reply to comment #1) > Created attachment 94216 [details] [review] [review] > mapi/es2api: unconditionaly link against glapi/glapi.la > > Hi Christian, thanks for the report. > > I must admit that these are rather unusual configure flags, which are not > tested too often. > > * Are you able to use the libGLESv2.so library, (eg. use a precompiled > es2gears)? I'm assuming that is not the case. When I build es2gears with the 'working' (shared glapi) Mesa installed and then uninstall Mesa and install the non-shared glapi Mesa version and execute the previously built es2gears binary, this error occurs: ./es2gears: symbol lookup error: /usr/local/lib/libGLESv2.so.2: undefined symbol: _glapi_Dispatch > With that said, the attached patch should help, although I'm not sure if > it's the correct solution as the api dispatch is out of my current scope :-) Unfortunalely, it doesn't build: /bin/bash ../../../libtool --tag=CC --mode=link gcc -fvisibility=hidden -g -O2 -Wall -std=c99 -Werror=implicit-function-declaration -Werror=missing-prototypes -fno-strict-aliasing -fno-builtin-memcmp -version-number 2 -no-undefined -o libGLESv2.la -rpath /usr/local/lib entry.lo -ldrm -lm -lpthread -ldl ../../../src/mapi/glapi/libglapi.la libtool: link: gcc -shared -fPIC -DPIC .libs/entry.o -Wl,--whole-archive ../../../src/mapi/glapi/.libs/libglapi.a -Wl,--no-whole-archive -ldrm -lm -lpthread -ldl -O2 -Wl,-soname -Wl,libGLESv2.so.2 -o .libs/libGLESv2.so.2.0.0 ../../../src/mapi/glapi/.libs/libglapi.a(glapi_x86.o): In function `glCullFace': /home/christian/projects/mesa/mesa/src/mapi/glapi/glapi_x86.S:305: multiple definition of `glCullFace' .libs/entry.o:entry.c:(.text+0x0): first defined here ../../../src/mapi/glapi/.libs/libglapi.a(glapi_x86.o): In function `glFrontFace': /home/christian/projects/mesa/mesa/src/mapi/glapi/glapi_x86.S:310: multiple definition of `glFrontFace' .libs/entry.o:entry.c:(.text+0x20): first defined here ../../../src/mapi/glapi/.libs/libglapi.a(glapi_x86.o): In function `glHint': .libs/entry.o:entry.c:(.text+0x40): first defined here ... Created attachment 94319 [details] [review] configure: use shared-glapi when more than one gl* API is used Hmm forcing shared-glapi whenever more than one gl* api is used seems like the only sensible thing to do imho. This patch fixes the problem by convering the dri dependency gl*. Feel free to give the patch a try. -Emil (In reply to comment #3) > Created attachment 94319 [details] [review] [review] > configure: use shared-glapi when more than one gl* API is used > > Hmm forcing shared-glapi whenever more than one gl* api is used seems like > the only sensible thing to do imho. > > This patch fixes the problem by convering the dri dependency gl*. Feel free > to give the patch a try. This patch works for me. Thanks. Pushed to master commit 0432aa064bf5d4d0ad8fc3c4d648b8feb238ddfa Author: Emil Velikov <emil.l.velikov@gmail.com> Date: Wed Feb 19 00:54:04 2014 +0000 configure: use shared-glapi when more than one gl* API is used Current behaviour states that shared-glapi is usefull when building with dri, which is not the case. Shared-glapi is used to dispatch the gl* functions across the one or more gl api's which can be dri based but do not need to be. Fixed the following build ./configure --enable-gles2 --disable-dri --enable-gallium-egl \ --with-egl-platforms=fbdev --with-gallium-drivers=swrast |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.