Compile error

I am not a developer, just want to have a look at Synfig.

I am trying to build synfig on a Mandriva 2008 system (x86-64) and am getting the following error:

/usr/bin/ld: …/…/libltdl/.libs/libltdl.a(ltdl.o): relocation R_X86_64_32S against `a local symbol’ can not be used when making a shared object; recompile with -fPIC
…/…/libltdl/.libs/libltdl.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[3]: *** [libsynfig.la] Error 1

Can anyone offer me some help?

Cheers.

We need a little more information:
Are you building from SVN or from the latest release?
Did you follow the build instructions in the wiki?
Have you got all the needed libraries installed?

I really don’t know what should be the build instructions for Mandriva but I guess they’re the same than for debian.

Can you paste the commands you have typed to build Synfig on your system?

Cheers! don’t give up! :smiley:
-G

Hi. I’m building from the latest release files, and yes, have followed the wiki instructions. Have successfully installed ETL (after overcoming the issue with pkg-config not automatically checking the usr directory). Just doing the standard ./configure, make, make install (as su).

Running configure on synfig produced a couple of dependencies that I needed and which I have installed, configure then ran through. The error comes up while compiling.

Here is the full output when I run make now, hope you can help - thanks!

Makefile:814: warning: overriding commands for target win32inst.nsi' Makefile:315: warning: ignoring old commands for targetwin32inst.nsi’
Makefile:817: warning: overriding commands for target pkg-info/macosx/synfig-core.info' Makefile:317: warning: ignoring old commands for targetpkg-info/macosx/synfig-core.info’
Makefile:833: warning: overriding commands for target configure' Makefile:290: warning: ignoring old commands for targetconfigure’
make all-recursive
make[1]: Entering directory /home/james/Download/Software-Source/synfig-0.61.07/synfig-0.61.07' Makefile:814: warning: overriding commands for targetwin32inst.nsi’
Makefile:315: warning: ignoring old commands for target win32inst.nsi' Makefile:817: warning: overriding commands for targetpkg-info/macosx/synfig-core.info’
Makefile:317: warning: ignoring old commands for target pkg-info/macosx/synfig-core.info' Makefile:833: warning: overriding commands for targetconfigure’
Makefile:290: warning: ignoring old commands for target configure' Making all in libltdl make[2]: Entering directory/home/james/Download/Software-Source/synfig-0.61.07/synfig-0.61.07/libltdl’
make all-am
make[3]: Entering directory /home/james/Download/Software-Source/synfig-0.61.07/synfig-0.61.07/libltdl' make[3]: Leaving directory/home/james/Download/Software-Source/synfig-0.61.07/synfig-0.61.07/libltdl’
make[2]: Leaving directory /home/james/Download/Software-Source/synfig-0.61.07/synfig-0.61.07/libltdl' Making all in src make[2]: Entering directory/home/james/Download/Software-Source/synfig-0.61.07/synfig-0.61.07/src’
Making all in synfig
make[3]: Entering directory /home/james/Download/Software-Source/synfig-0.61.07/synfig-0.61.07/src/synfig' /bin/sh ../../libtool --tag=CXX --mode=link g++ -I/usr/include/libxml++-2.6 -I/usr/lib64/libxml++-2.6/include -I/usr/include/libxml2 -I/usr/include/glibmm-2.4 -I/usr/lib64/glibmm-2.4/include -I/usr/include/sigc++-2.0 -I/usr/lib64/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/local/include -I/usr/include/sigc++-2.0 -I/usr/lib64/sigc++-2.0/include -DSYNFIG_NO_DEPRECATED -DLIBDIR="\"/usr/local/lib\"" -DSYSCONFDIR="\"/usr/local/etc\"" -DNDEBUG -Wno-deprecated -O2 -W -Wall -Wno-unused-parameter -fpermissive -export-dynamic -no-undefined -version-info 0:0:0 -o libsynfig.la -rpath /usr/local/lib libsynfig_la-blinepoint.lo libsynfig_la-gradient.lo libsynfig_la-value.lo libsynfig_la-layer_motionblur.lo libsynfig_la-layer_pastecanvas.lo libsynfig_la-layer_solidcolor.lo libsynfig_la-layer_polygon.lo libsynfig_la-layer_composite.lo libsynfig_la-layer_bitmap.lo libsynfig_la-layer_mime.lo libsynfig_la-layer_shape.lo libsynfig_la-target_scanline.lo libsynfig_la-target_tile.lo libsynfig_la-target_multi.lo libsynfig_la-target_null.lo libsynfig_la-target_null_tile.lo libsynfig_la-valuenode_exp.lo libsynfig_la-valuenode_sine.lo libsynfig_la-valuenode_radialcomposite.lo libsynfig_la-valuenode_bline.lo libsynfig_la-valuenode_blinecalcvertex.lo libsynfig_la-valuenode_blinecalctangent.lo libsynfig_la-valuenode_segcalcvertex.lo libsynfig_la-valuenode_segcalctangent.lo libsynfig_la-valuenode_twotone.lo libsynfig_la-valuenode_repeat_gradient.lo libsynfig_la-valuenode_stripes.lo libsynfig_la-valuenode_add.lo libsynfig_la-valuenode_subtract.lo libsynfig_la-valuenode_const.lo libsynfig_la-valuenode_range.lo libsynfig_la-valuenode_reference.lo libsynfig_la-valuenode_linear.lo libsynfig_la-valuenode_composite.lo libsynfig_la-valuenode_dynamiclist.lo libsynfig_la-valuenode_animated.lo libsynfig_la-valuenode_scale.lo libsynfig_la-valuenode_timedswap.lo libsynfig_la-valuenode_gradientrotate.lo libsynfig_la-mutex.lo libsynfig_la-timepointcollect.lo libsynfig_la-rect.lo libsynfig_la-node.lo libsynfig_la-guid.lo libsynfig_la-loadcanvas.lo libsynfig_la-distance.lo libsynfig_la-palette.lo libsynfig_la-paramdesc.lo libsynfig_la-waypoint.lo libsynfig_la-activepoint.lo libsynfig_la-gamma.lo libsynfig_la-uniqueid.lo libsynfig_la-context.lo libsynfig_la-renddesc.lo libsynfig_la-time.lo libsynfig_la-exception.lo libsynfig_la-keyframe.lo libsynfig_la-main.lo libsynfig_la-surface.lo libsynfig_la-module.lo libsynfig_la-importer.lo libsynfig_la-layer.lo libsynfig_la-color.lo libsynfig_la-canvas.lo libsynfig_la-render.lo libsynfig_la-target.lo libsynfig_la-savecanvas.lo libsynfig_la-valuenode.lo libsynfig_la-blur.lo libsynfig_la-curve_helper.lo libsynfig_la-polynomial_root.lo libsynfig_la-transform.lo libsynfig_la-curveset.lo libsynfig_la-listimporter.lo ../../libltdl/libltdl.la -lxml++-2.6 -lxml2 -lglibmm-2.4 -lgobject-2.0 -lsigc-2.0 -lglib-2.0 -lpthread -lsigc-2.0 -ldl -lpthread g++ -shared -nostdlib /usr/lib/gcc/x86_64-mandriva-linux-gnu/4.2.2/../../../../lib64/crti.o /usr/lib/gcc/x86_64-mandriva-linux-gnu/4.2.2/crtbeginS.o .libs/libsynfig_la-blinepoint.o .libs/libsynfig_la-gradient.o .libs/libsynfig_la-value.o .libs/libsynfig_la-layer_motionblur.o .libs/libsynfig_la-layer_pastecanvas.o .libs/libsynfig_la-layer_solidcolor.o .libs/libsynfig_la-layer_polygon.o .libs/libsynfig_la-layer_composite.o .libs/libsynfig_la-layer_bitmap.o .libs/libsynfig_la-layer_mime.o .libs/libsynfig_la-layer_shape.o .libs/libsynfig_la-target_scanline.o .libs/libsynfig_la-target_tile.o .libs/libsynfig_la-target_multi.o .libs/libsynfig_la-target_null.o .libs/libsynfig_la-target_null_tile.o .libs/libsynfig_la-valuenode_exp.o .libs/libsynfig_la-valuenode_sine.o .libs/libsynfig_la-valuenode_radialcomposite.o .libs/libsynfig_la-valuenode_bline.o .libs/libsynfig_la-valuenode_blinecalcvertex.o .libs/libsynfig_la-valuenode_blinecalctangent.o .libs/libsynfig_la-valuenode_segcalcvertex.o .libs/libsynfig_la-valuenode_segcalctangent.o .libs/libsynfig_la-valuenode_twotone.o .libs/libsynfig_la-valuenode_repeat_gradient.o .libs/libsynfig_la-valuenode_stripes.o .libs/libsynfig_la-valuenode_add.o .libs/libsynfig_la-valuenode_subtract.o .libs/libsynfig_la-valuenode_const.o .libs/libsynfig_la-valuenode_range.o .libs/libsynfig_la-valuenode_reference.o .libs/libsynfig_la-valuenode_linear.o .libs/libsynfig_la-valuenode_composite.o .libs/libsynfig_la-valuenode_dynamiclist.o .libs/libsynfig_la-valuenode_animated.o .libs/libsynfig_la-valuenode_scale.o .libs/libsynfig_la-valuenode_timedswap.o .libs/libsynfig_la-valuenode_gradientrotate.o .libs/libsynfig_la-mutex.o .libs/libsynfig_la-timepointcollect.o .libs/libsynfig_la-rect.o .libs/libsynfig_la-node.o .libs/libsynfig_la-guid.o .libs/libsynfig_la-loadcanvas.o .libs/libsynfig_la-distance.o .libs/libsynfig_la-palette.o .libs/libsynfig_la-paramdesc.o .libs/libsynfig_la-waypoint.o .libs/libsynfig_la-activepoint.o .libs/libsynfig_la-gamma.o .libs/libsynfig_la-uniqueid.o .libs/libsynfig_la-context.o .libs/libsynfig_la-renddesc.o .libs/libsynfig_la-time.o .libs/libsynfig_la-exception.o .libs/libsynfig_la-keyframe.o .libs/libsynfig_la-main.o .libs/libsynfig_la-surface.o .libs/libsynfig_la-module.o .libs/libsynfig_la-importer.o .libs/libsynfig_la-layer.o .libs/libsynfig_la-color.o .libs/libsynfig_la-canvas.o .libs/libsynfig_la-render.o .libs/libsynfig_la-target.o .libs/libsynfig_la-savecanvas.o .libs/libsynfig_la-valuenode.o .libs/libsynfig_la-blur.o .libs/libsynfig_la-curve_helper.o .libs/libsynfig_la-polynomial_root.o .libs/libsynfig_la-transform.o .libs/libsynfig_la-curveset.o .libs/libsynfig_la-listimporter.o -Wl,--rpath -Wl,/usr/lib64 -Wl,--rpath -Wl,/usr/lib64 ../../libltdl/.libs/libltdl.a /usr/lib64/libxml++-2.6.so /usr/lib64/libxml2.so /usr/lib64/libglibmm-2.4.so /usr/lib64/libgobject-2.0.so /usr/lib64/libglib-2.0.so /usr/lib64/libsigc-2.0.so -ldl -lpthread -L/usr/lib/gcc/x86_64-mandriva-linux-gnu/4.2.2 -L/usr/lib/gcc/x86_64-mandriva-linux-gnu/4.2.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-mandriva-linux-gnu/4.2.2/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-mandriva-linux-gnu/4.2.2/crtendS.o /usr/lib/gcc/x86_64-mandriva-linux-gnu/4.2.2/../../../../lib64/crtn.o -Wl,-soname -Wl,libsynfig.so.0 -o .libs/libsynfig.so.0.0.0 /usr/bin/ld: ../../libltdl/.libs/libltdl.a(ltdl.o): relocation R_X86_64_32S againsta local symbol’ can not be used when making a shared object; recompile with -fPIC
…/…/libltdl/.libs/libltdl.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[3]: *** [libsynfig.la] Error 1
make[3]: Leaving directory /home/james/Download/Software-Source/synfig-0.61.07/synfig-0.61.07/src/synfig' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory/home/james/Download/Software-Source/synfig-0.61.07/synfig-0.61.07/src’
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/james/Download/Software-Source/synfig-0.61.07/synfig-0.61.07’
make: *** [all] Error 2

Please post the log for this:

make -C libltdl clean all

Try the full build again after installing libltdl3-devel.

Also, please try building SVN:

synfig.org/Build_instructions

Hi. I already have libltdl3-devel installed. Here is the log:

[james@localhost synfig-0.61.07]$ make -C libltdl clean all
make: Entering directory /home/james/Download/Software-Source/synfig-0.61.07/sy nfig-0.61.07/libltdl' test -z "libltdl.la libltdlc.la" || rm -f libltdl.la libltdlc.la test -z "libltdl.la" || rm -f libltdl.la rm -f "./so_locations" rm -rf .libs _libs test -z "" || rm -f rm -f *.o rm -f *.lo make all-am make[1]: Entering directory/home/james/Download/Software-Source/synfig-0.61.07 /synfig-0.61.07/libltdl’
/bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -DNDEBUG -Wno-deprecated -O2 -c -o ltdl.lo ltdl.c
gcc -DHAVE_CONFIG_H -I. -DNDEBUG -Wno-deprecated -O2 -c ltdl.c -o ltdl.o
cc1: warning: command line option “-Wno-deprecated” is valid for C++/Java/ObjC++ but not for C
/bin/sh ./libtool --tag=CC --mode=link gcc -DNDEBUG -Wno-deprecated -O2 -no-u ndefined -version-info 4:4:1 -o libltdl.la -rpath /usr/local/lib ltdl.lo -ldl
mkdir .libs
ar cru .libs/libltdl.a ltdl.o
ranlib .libs/libltdl.a
creating libltdl.la
(cd .libs && rm -f libltdl.la && ln -s …/libltdl.la libltdl.la)
make[1]: Leaving directory /home/james/Download/Software-Source/synfig-0.61.07/ synfig-0.61.07/libltdl' make: Leaving directory/home/james/Download/Software-Source/synfig-0.61.07/syn fig-0.61.07/libltdl’

When trying to build from the SVN, I get the following different error when compiling synfig-core:

xml+±2.6.so /usr/lib/libxml2.so /usr/lib64/libglibmm-2.4.so /usr/lib64/libgobject-2.0.so /usr/li b64/libglib-2.0.so /usr/lib/libsigc-2.0.so -L/usr/lib -lavformat -lavcodec -lz /usr/lib64/liba52. so -lnut -ldl /usr/lib/libX11.so /usr/lib/libXext.so /usr/lib64/libdirac_encoder.so /usr/lib64/li bdirac_decoder.so -lavutil -lpthread -L/usr/lib/gcc/x86_64-mandriva-linux-gnu/4.2.2 -L/usr/lib/gc c/x86_64-mandriva-linux-gnu/4.2.2/…/…/…/…/lib64 -L/lib/…/lib64 -L/usr/lib/…/lib64 -L/usr/li b/gcc/x86_64-mandriva-linux-gnu/4.2.2/…/…/… -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-mandr iva-linux-gnu/4.2.2/crtendS.o /usr/lib/gcc/x86_64-mandriva-linux-gnu/4.2.2/…/…/…/…/lib64/crtn .o -Wl,-soname -Wl,libmod_libavcodec.so -o .libs/libmod_libavcodec.so
/usr/lib/libxml2.so: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make[4]: *** [libmod_libavcodec.la] Error 1

Not sure about the 0.61.07 build error, it should link against your system libltdl instead of the local one.

The SVN error sounds like you have an i386 version of the libxml devel package installed, either that or something is corrupted.

The libxml is i586. Any suggestions about what I should try?

Since gcc and other parts of your system are amd64, please install the amd64 libxml. All of synfig’s dependencies must be from the same architecture that you are building for.

OK, but there is no x86-64 build for libxml showing in the Mandriva repository, I’ll serach the net and give it a go.

Cheers.

I found an x86_64 build of libxml2 and installed it. Still get the same error.

Oh well, I’m off on holiday for two weeks tomorrow, will try again when I get back. Thanks for your help.