Bug#578831: link failure with LTO: “invalid DSO for symbol `pthread_cancel@@GLIBC_2.0' definition”
On Fri, Apr 23, 2010 at 08:41:53AM +0200, Vincent Danjean wrote:
> Please, look at #577961. It seems to me that this is the same bug (and
> now, I think the bug belong to gcc-4.5)
OK, adding -lpthread makes the error go away. Now let me try adding
-fwhole-program to the link (which is the point of the LTO exercise :-) ):
g++-4.5 -o intro script/engine.o script/progressbar.o mumps/mumps_glx.o engine/fbo_rtt.o mumps/XF86VMode.o script.o -flto -lpthread -fwhole-program -fno-exceptions -Wl,--gc-sections -lGL -lGLU -L/usr/X11R6/lib -lXext -lX11 -lfreetype -lz -Wl,--start-group engine/engine.a texgen/texgen.a meshgen/meshgen.a common/common.a effects/effects.a script/script.a sanestation/libsanestation.a -Wl,--end-group
script/script.a(curve.o): In function `_ZN6script5Curve13make_tangentsEv':
curve.cpp:(.text._ZN6script5Curve13make_tangentsEv+0x391): undefined reference to `_ZN6script6engine13get_num_paramENS_5Curve8knottypeE'
script/script.a(curve.o): In function `_ZN6script5Curve9get_valueEfPf':
curve.cpp:(.text._ZN6script5Curve9get_valueEfPf+0x1d6): undefined reference to `_ZN6script6engine7targetsE'
curve.cpp:(.text._ZN6script5Curve9get_valueEfPf+0x1e6): undefined reference to `_ZN6script6engine8texturesE'
curve.cpp:(.text._ZN6script5Curve9get_valueEfPf+0x214): undefined reference to `_ZN6script6engine6meshesE'
curve.cpp:(.text._ZN6script5Curve9get_valueEfPf+0x23f): undefined reference to `_ZN6script6engine9materialsE'
curve.cpp:(.text._ZN6script5Curve9get_valueEfPf+0x253): undefined reference to `_ZN6script6engine13get_num_paramENS_5Curve8knottypeE'
collect2: ld returned 1 exit status
make: *** [intro] Error 1
It's actually a bit curious the missing symbols don't even get demangled.
/* Steinar */
--
Homepage: http://www.sesse.net/
Reply to: