fung-calc 1.3.2b compile failed. OpenGL libraries not linked properly, i guess. Reproducible: Always Steps to Reproduce: ACCEPT_KEYWORDS="~amd64" USE="-arts -debug opengl -xinerama" emerge fung-calc Actual Results: ... make[3]: Entering directory `/var/tmp/portage/fung-calc-1.3.2b/work/fung-calc-1.3.2b/src' x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/kde/3.3/include -I/usr/qt/3/include -I/usr/X11R6/include -I./libfungcalcui -DQT_THREAD_SUPPORT -D_REENTRANT -DKDE_APP -DGLGRAPH -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -DNDEBUG -DNO_DEBUG -O2 -O2 -fomit-frame-pointer -pipe -c -o main.o `test -f 'main.cpp' || echo './'`main.cpp /bin/sh ../libtool --silent --mode=link --tag=CXX x86_64-pc-linux-gnu-g++ -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -DNDEBUG -DNO_DEBUG -O2 -O2 -fomit-frame-pointer -pipe -L/usr/X11R6/lib64 -o fung-calc -L/usr/X11R6/lib64 -L/usr/qt/3/lib64 -L/usr/kde/3.3/lib64 main.o -lkdecore-lkio -lkdeprint ./libfungcalc/libfungcalc.la ./libfungcalc/fparser/libwarpfparser.la ./libfungcalcui/libfungcalcui.la ./libfungcalcui/2D/lib2Dgraphsui.la libfungcalcui/3D/lib3Dgraphsui.la ./libfungcalc/2D/lib2Dgraphs.la libfungcalc/3D/lib3Dgraphs.la ./libfungcalc/mathfunctions/libmathfunctions.la -lqt-mt -lpng -lz -lm -lXext -lX11-lSM -lICE -lpthread -lm libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x7f5): In function `GLBasicGraph::resizeGL(int, int)': : undefined reference to `glViewport' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x7ff): In function `GLBasicGraph::resizeGL(int, int)': : undefined reference to `glMatrixMode' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x804): In function `GLBasicGraph::resizeGL(int, int)': : undefined reference to `glLoadIdentity' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x816): In function `GLBasicGraph::resizeGL(int, int)': : undefined reference to `glMatrixMode' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x81b): In function `GLBasicGraph::resizeGL(int, int)': : undefined reference to `glLoadIdentity' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x825): In function `GLBasicGraph::resizeGL(int, int)': : undefined reference to `glDrawBuffer' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x82f): In function `GLBasicGraph::resizeGL(int, int)': : undefined reference to `glEnable' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x839): In function `GLBasicGraph::resizeGL(int, int)': : undefined reference to `glShadeModel' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x846): In function `GLBasicGraph::resizeGL(int, int)': : undefined reference to `glClearDepth' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x850): In function `GLBasicGraph::resizeGL(int, int)': : undefined reference to `glEnable' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x85a): In function `GLBasicGraph::resizeGL(int, int)': : undefined reference to `glEnable' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x869): In function `GLBasicGraph::resizeGL(int, int)': : undefined reference to `glBlendFunc' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x878): In function `GLBasicGraph::resizeGL(int, int)': : undefined reference to `glHint' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x8aa): In function `GLBasicGraph::paintGL()': : undefined reference to `glClear' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x8b9): In function `GLBasicGraph::paintGL()': : undefined reference to `glPolygonMode' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x8be): In function `GLBasicGraph::paintGL()': : undefined reference to `glPushMatrix' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x8d9): In function `GLBasicGraph::paintGL()': : undefined reference to `glRotatef' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x8f4): In function `GLBasicGraph::paintGL()': : undefined reference to `glRotatef' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x90f): In function `GLBasicGraph::paintGL()': : undefined reference to `glRotatef' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x92f): In function `GLBasicGraph::paintGL()': : undefined reference to `glScalef' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x980): In function `GLBasicGraph::drawAxis()': : undefined reference to `glBegin' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x993): In function `GLBasicGraph::drawAxis()': : undefined reference to `glColor3f' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x9b2): In function `GLBasicGraph::drawAxis()': : undefined reference to `glVertex3f' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x9d1): In function `GLBasicGraph::drawAxis()': : undefined reference to `glVertex3f' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0xa84): In function `GLBasicGraph::drawAxis()': : undefined reference to `glColor3f' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0xaa3): In function `GLBasicGraph::drawAxis()': : undefined reference to `glVertex3f' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0xac2): In function `GLBasicGraph::drawAxis()': : undefined reference to `glVertex3f' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0xb75): In function `GLBasicGraph::drawAxis()': : undefined reference to `glColor3f' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0xb94): In function `GLBasicGraph::drawAxis()': : undefined reference to `glVertex3f' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0xbb3): In function `GLBasicGraph::drawAxis()': : undefined reference to `glVertex3f' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0xc58): In function `GLBasicGraph::drawAxis()': : undefined reference to `glEnd' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x184a): In function `GLBasicGraph::updateView()': : undefined reference to `glMatrixMode' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x184f): In function `GLBasicGraph::updateView()': : undefined reference to `glLoadIdentity' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x1884): In function `GLBasicGraph::updateView()': : undefined reference to `glOrtho' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x1a5c): In function `GLBasicGraph::drawLetterPlus(double, double, double, double, double)': : undefined reference to `glVertex3d' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x1a84): In function `GLBasicGraph::drawLetterPlus(double, double, double, double, double)': : undefined reference to `glVertex3d' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x1a9b): In function `GLBasicGraph::drawLetterPlus(double, double, double, double, double)': : undefined reference to `glVertex3d' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x1abe): In function `GLBasicGraph::drawLetterPlus(double, double, double, double, double)': : undefined reference to `glVertex3d' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x1aec): In function `GLBasicGraph::drawLetterMinus(double, double, double, double)': : undefined reference to `glVertex3d' libfungcalc/3D/.libs/lib3Dgraphs.a(glbasicgraph.o)(.text+0x1b0c): more undefined references to `glVertex3d' follow libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x6dc): In function `GLExpressionGraph::paintGL()': : undefined reference to `glEnable' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x6f1): In function `GLExpressionGraph::paintGL()': : undefined reference to `glPolygonOffset' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x723): In function `GLExpressionGraph::paintGL()': : undefined reference to `glCallList' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x743): In function `GLExpressionGraph::paintGL()': : undefined reference to `glPopMatrix' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x75b): In function `GLExpressionGraph::paintGL()': : undefined reference to `glColor3f' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x86f): In function `GLExpressionGraph::drawCube(float, float, float, float, float)': : undefined reference to `glBegin' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x8ea): In function `GLExpressionGraph::drawCube(float, float, float, float, float)': : undefined reference to `glVertex3f' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x926): In function `GLExpressionGraph::drawCube(float, float, float, float, float)': : undefined reference to `glVertex3f' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x94b): In function `GLExpressionGraph::drawCube(float, float, float, float, float)': : undefined reference to `glVertex3f' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x980): In function `GLExpressionGraph::drawCube(float, float, float, float, float)': : undefined reference to `glVertex3f' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x9a5): In function `GLExpressionGraph::drawCube(float, float, float, float, float)': : undefined reference to `glVertex3f' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x9d8): more undefined references to `glVertex3f' follow libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0xc77): In function `GLExpressionGraph::drawCube(float, float, float, float, float)': : undefined reference to `glEnd' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0xfe3): In function `GLExpressionGraph::compileList(unsigned int, FungParser&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, QColor const&)': : undefined reference to `glNewList' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x101b): In function `GLExpressionGraph::compileList(unsigned int, FungParser&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, QColor const&)': : undefined reference to `glBegin' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x10e0): In function `GLExpressionGraph::compileList(unsigned int, FungParser&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, QColor const&)': : undefined reference to `glVertex3f' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x1158): In function `GLExpressionGraph::compileList(unsigned int, FungParser&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, QColor const&)': : undefined reference to `glVertex3f' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x1166): In function `GLExpressionGraph::compileList(unsigned int, FungParser&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, QColor const&)': : undefined reference to `glEnd' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x11d6): In function `GLExpressionGraph::compileList(unsigned int, FungParser&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, QColor const&)': : undefined reference to `glBegin' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x12b2): In function `GLExpressionGraph::compileList(unsigned int, FungParser&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, QColor const&)': : undefined reference to `glVertex3f' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x12f0): In function `GLExpressionGraph::compileList(unsigned int, FungParser&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, QColor const&)': : undefined reference to `glVertex3f' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x1332): In function `GLExpressionGraph::compileList(unsigned int, FungParser&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, QColor const&)': : undefined reference to `glVertex3f' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x1371): In function `GLExpressionGraph::compileList(unsigned int, FungParser&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, QColor const&)': : undefined reference to `glVertex3f' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x1380): In function `GLExpressionGraph::compileList(unsigned int, FungParser&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, QColor const&)': : undefined reference to `glEnd' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x138d): In function `GLExpressionGraph::compileList(unsigned int, FungParser&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, QColor const&)': : undefined reference to `glEndList' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x143b): In function `GLExpressionGraph::compileList(unsigned int, FungParser&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, QColor const&)': : undefined reference to `glNewList' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x1442): In function `GLExpressionGraph::compileList(unsigned int, FungParser&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, QColor const&)': : undefined reference to `glBegin' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x14de): In function `GLExpressionGraph::compileList(unsigned int, FungParser&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, QColor const&)': : undefined reference to `glVertex3f' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x14f4): In function `GLExpressionGraph::compileList(unsigned int, FungParser&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, QColor const&)': : undefined reference to `glEnd' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x1856): In function `GLExpressionGraph::addExpression(Expression const&)': : undefined reference to `glGenLists' libfungcalc/3D/.libs/lib3Dgraphs.a(glexpressiongraph.o)(.text+0x20ee): In function `GLExpressionGraph::doColorBlend(float, QColor const&, float, float)': : undefined reference to `glColor3f' collect2: ld returned 1 exit status make[3]: *** [fung-calc] Error 1 make[3]: Leaving directory `/var/tmp/portage/fung-calc-1.3.2b/work/fung-calc-1.3.2b/src' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/fung-calc-1.3.2b/work/fung-calc-1.3.2b/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/fung-calc-1.3.2b/work/fung-calc-1.3.2b' make: *** [all] Error 2 Portage 2.0.51-r3 (default-linux/amd64/2004.3, gcc-3.3.4, glibc-2.3.4.20041102-r0, 2.6.9-gentoo-r6 x86_64) ================================================================= System uname: 2.6.9-gentoo-r6 x86_64 AMD Athlon(tm) 64 Processor 3200+ Gentoo Base System version 1.5.3 ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.59-r5 Automake: sys-devel/automake-1.8.5-r1 Binutils: sys-devel/binutils-2.15.90.0.1.1-r3 Headers: sys-kernel/linux-headers-2.4.26 Libtools: sys-devel/libtool-1.5.2-r7 AUTOCLEAN="yes" CFLAGS="-O2 -fomit-frame-pointer -pipe" CHOST="x86_64-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.3/share/config:/usr/kde/3.3/env:/usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -fomit-frame-pointer -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks sandbox" GENTOO_MIRRORS="http://ftp.linux.ee/pub/gentoo/distfiles/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage"
I got it working, by re-emerging glut (not upgrading). the output of ./configure of fung-calc before re-emerging glut was: checking GL/glu.h usability... yes checking GL/glu.h presence... yes checking for GL/glu.h... yes checking GL/glut.h usability... no checking GL/glut.h presence... no checking for GL/glut.h... no and after: checking GL/glu.h usability... yes checking GL/glu.h presence... yes checking for GL/glu.h... yes checking GL/glut.h usability... yes checking GL/glut.h presence... yes checking for GL/glut.h... yes There seems to be something wrong with the configure scripts or something similar. I'm not as smart as to spot the knot and fix it thou :( The Workaround: re-emerge media-libs/glut
You just need to run opengl-update to update your opengl headers back to the xorg ones. Most likely your nvidia ones conflict.
root /usr/lib $ ls -l libGL* -rw-r--r-- 1 root root 780 Oct 30 21:24 libGL.la lrwxrwxrwx 1 root root 41 Oct 30 21:24 libGL.so -> /usr/lib/opengl/xorg-x11/lib/libGL.so.1.2 lrwxrwxrwx 1 root root 41 Oct 30 21:24 libGL.so.1 -> /usr/lib/opengl/xorg-x11/lib/libGL.so.1.2 -rw-r--r-- 1 root root 920462 Oct 28 19:35 libGLU.a -rw-r--r-- 1 root root 769 Oct 28 19:35 libGLU.la lrwxrwxrwx 1 root root 13 Oct 28 19:35 libGLU.so -> libGLU.so.1.3 lrwxrwxrwx 1 root root 13 Oct 28 19:35 libGLU.so.1 -> libGLU.so.1.3 -rwxr-xr-x 1 root root 623149 Oct 28 19:35 libGLU.so.1.3 opengl-update should be already xorg-x11... btw, i've always used xorg-x11 opengl as i'm another ATI Radeon 9200 SE user on amd64. So i guess that should not be the problem. Maybe the symlinks just got lost somehow.
Also on a fresh gentoo install with no nvidia drivers, emerging fung-calc fails to link! I'm getting the same error output listed here. The differences to the report above are that glut hasn't been installed on my machine yet and I'm on x86. And like the report above, the xorg-x11 GL libraries are properly installed, and I also have an ATI. Emerging glut prior to fung-calc resolves the problem. Apparently glut should be at least a dependency in the fung-calc ebuild.
glut/freeglut is unrelated to the opengl headers touched by opengl-update. Adding the dep is a good idea.
Indeed. glut is required to build fung-calc with OpenGL support. This is now fixed in CVS. Thanks for reporting and commenting.
@Ristioja@gmail.com: Stop needlessly changing old bugs, every change you make results in spam in my inbox.