Summary: | undefined reference to `__egl InitDriverFallbacks' | ||
---|---|---|---|
Product: | Mesa | Reporter: | Vinson Lee <vlee> |
Component: | GLX | Assignee: | mesa-dev |
Status: | CLOSED FIXED | QA Contact: | |
Severity: | critical | ||
Priority: | medium | CC: | olvaffe |
Version: | git | ||
Hardware: | x86 (IA32) | ||
OS: | Cygwin | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
Add back-linking to libEGL
fix building of demos fix building EGL demos by ignoring LIB_DEP give cygwin libraries the correct suffix |
Description
Vinson Lee
2010-05-11 16:18:45 UTC
Created attachment 35583 [details] [review] Add back-linking to libEGL It seems EGL drivers should link back to libEGL.so on Cygwin. Could you try again with this patch? 0001-egl-Link-drivers-back-to-libEGL.patch $ make ... make[1]: Entering directory `/home/vlee/mesa/progs' Making programs for autoconf make[2]: Entering directory `/home/vlee/mesa/progs/xdemos' make[2]: Nothing to be done for `default'. make[2]: Leaving directory `/home/vlee/mesa/progs/xdemos' make[2]: Entering directory `/home/vlee/mesa/progs/egl/eglut' make[2]: Nothing to be done for `default'. make[2]: Leaving directory `/home/vlee/mesa/progs/egl/eglut' make[2]: Entering directory `/home/vlee/mesa/progs/egl/opengl' make[2]: *** No rule to make target `../../../lib/libEGL.so', needed by `demo1'. Stop. make[2]: Leaving directory `/home/vlee/mesa/progs/egl/opengl' make[1]: *** [subdirs] Error 1 make[1]: Leaving directory `/home/vlee/mesa/progs' make: *** [default] Error 1 libEGL should have been built in src/egl/main/. Does it not exist or does it have a different suffix? $ ls lib egl libGL-1.dll.a libGLU.dll.a libOSMesa.dll.a gallium libGL.dll.a libGLw-1.dll.a libglut-3.dll.a libEGL-1.dll.a libGLEW.a libGLw.dll.a libglut.dll.a libEGL.dll.a libGLU-1.dll.a libOSMesa-7.dll.a $ ls src/egl/main Makefile eglconfig.h egldefines.h eglimage.h eglmutex.h README.txt eglconfig.o egldisplay.c eglimage.o eglscreen.c cygEGL-1.dll eglconfigutil.c egldisplay.h egllog.c eglscreen.h depend eglconfigutil.h egldisplay.o egllog.h eglscreen.o depend.bak eglconfigutil.o egldriver.c egllog.o eglstring.c egl.pc.in eglcontext.c egldriver.h eglmisc.c eglstring.h eglapi.c eglcontext.h egldriver.o eglmisc.h eglstring.o eglapi.h eglcontext.o eglglobals.c eglmisc.o eglsurface.c eglapi.o eglcurrent.c eglglobals.h eglmode.c eglsurface.h eglcompiler.h eglcurrent.h eglglobals.o eglmode.h eglsurface.o eglconfig.c eglcurrent.o eglimage.c eglmode.o egltypedefs.h Created attachment 35728 [details] [review] fix building of demos Could you try again with this patch? 0001-egl-Link-drivers-back-to-libEGL.patch 0001-progs-egl-Fix-building-on-cygwin.patch $ make ... make[1]: Entering directory `/home/vlee/mesa/progs/xdemos' make[1]: Nothing to be done for `default'. make[1]: Leaving directory `/home/vlee/mesa/progs/xdemos' make[1]: Entering directory `/home/vlee/mesa/progs/egl/eglut' make[1]: Nothing to be done for `default'. make[1]: Leaving directory `/home/vlee/mesa/progs/egl/eglut' make[1]: Entering directory `/home/vlee/mesa/progs/egl/opengl' make[1]: *** No rule to make target `../../../lib/libEGL.dll', needed by `demo1' . Stop. make[1]: Leaving directory `/home/vlee/mesa/progs/egl/opengl' make: *** [subdirs] Error 1 I am not sure how to proceed from here. Does progs/demos/ build on cygwin? If it does, I suppose progs/egl/ should too. demos successfully builds on Cygwin. Created attachment 35754 [details] [review] fix building EGL demos by ignoring LIB_DEP The GNU make manual says that a suffix rule cannot have any prerequisite. It seems $(LIB_DEP) in progs/demos/Makefile is simply ignored. Could you see if this patch helps? It is a workaround instead of a fix. Created attachment 35755 [details] [review] give cygwin libraries the correct suffix This patch tries to fix the issue by fixing the library suffix in cygwin. This is a real fix, but I could not test it. If it is not too much trouble, could you see if this fixes the issue too? I would like to apply this patch instead of the workaround above. (In reply to comment #9) > The GNU make manual says that a suffix rule cannot have any prerequisite. It > seems $(LIB_DEP) in progs/demos/Makefile is simply ignored. Could you see if > this patch helps? It is a workaround instead of a fix. The workaround patch gets progs/egl building. 0001-egl-Link-drivers-back-to-libEGL.patch 0001-progs-egl-Fix-building-on-cygwin.patch 0001-progs-egl-No-LIB_DEP.patch $ make ... make[1]: Entering directory `/home/vlee/mesa/progs/egl/eglut' make[1]: Nothing to be done for `default'. make[1]: Leaving directory `/home/vlee/mesa/progs/egl/eglut' make[1]: Entering directory `/home/vlee/mesa/progs/egl/opengl' gcc -c -I../../../include -I../../../progs/egl/eglut -g -O2 -Wall -Wmissing-pro totypes -std=c99 -ffast-math -fvisibility=hidden -fno-strict-aliasing -DPTHR EADS -DHAVE_POSIX_MEMALIGN -DUSE_XSHM eglgears.c -o eglgears.o eglgears.c: In function `gear': eglgears.c:64: error: `M_PI' undeclared (first use in this function) eglgears.c:64: error: (Each undeclared identifier is reported only once eglgears.c:64: error: for each function it appears in.) make[1]: *** [eglgears.o] Error 1 make[1]: Leaving directory `/home/vlee/mesa/progs/egl/opengl' make: *** [subdirs] Error 1 (In reply to comment #10) > This patch tries to fix the issue by fixing the library suffix in cygwin. This > is a real fix, but I could not test it. If it is not too much trouble, could > you see if this fixes the issue too? I would like to apply this patch instead > of the workaround above. I did a 'make realclean; autogen.sh; make'. This patch gets progs/egl working too. It also stops the unnecessary rebuilding of some DLLs on incremental makes as well. 0001-egl-Link-drivers-back-to-libEGL.patch 0001-progs-egl-Fix-building-on-cygwin.patch 0001-configure.ac-Fix-cygwin-suffix.patch $ make ... make[2]: Entering directory `/home/vlee/mesa/progs/egl/eglut' make[2]: Nothing to be done for `default'. make[2]: Leaving directory `/home/vlee/mesa/progs/egl/eglut' make[2]: Entering directory `/home/vlee/mesa/progs/egl/opengl' gcc -c -I../../../include -I../../../progs/egl/eglut -g -O2 -Wall -Wmissing-pro totypes -std=c99 -ffast-math -fvisibility=hidden -fno-strict-aliasing -DPTHR EADS -DHAVE_POSIX_MEMALIGN -DUSE_XSHM eglgears.c -o eglgears.o eglgears.c: In function `gear': eglgears.c:64: error: `M_PI' undeclared (first use in this function) eglgears.c:64: error: (Each undeclared identifier is reported only once eglgears.c:64: error: for each function it appears in.) make[2]: *** [eglgears.o] Error 1 make[2]: Leaving directory `/home/vlee/mesa/progs/egl/opengl' make[1]: *** [subdirs] Error 1 I've pushed two commits that are based on 0001-egl-Link-drivers-back-to-libEGL.patch 0001-progs-egl-Fix-building-on-cygwin.patch 0001-configure.ac-Fix-cygwin-suffix.patch with the addition of M_PI fixes. Please test. mesa: 366798ac6f10daae059d299b92ddf709875cc7ca (master) The Cygwin build completes. |
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.