Well, I finally succeeded to manage the problem. Below is how I did it, for further reference:
0. Even more first: here are the relevant links: http://lists.fedoraproject.org/piper...ch/133601.html https://fedoraproject.org/wiki/Featu...icitDSOLinking https://fedoraproject.org/wiki/Under...gDSOLinkChange There is a change in the default behavior of the linker, that now does not *implicitely* links with NEEDED libraries, but requires to pass those libraries in explicit manner. 1. First of all, I was building the software using scons and the original command line as passed by scons to the environment was: /build$ gcc -o program program.o -lm -lsndfile -lmediastreamer -lGL -lGLU -lglut -lIrrlicht -litpp libmsf_library.a libbas_library.a libtst_library.a /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../../lib/libmediastreamer.so: undefined reference to symbol 'ortp_malloc' /usr/bin/ld: note: 'ortp_malloc' is defined in DSO /usr/lib/libortp.so.8 so try adding it to the linker command line /usr/lib/libortp.so.8: could not read symbols: Invalid operation collect2: ld returned 1 exit status The linker suggested "/usr/bin/ld: note: 'ortp_malloc' is defined in DSO /usr/lib/libortp.so.8 so try adding it to the linker command line" 2. However, if I added "-lortp" just after -lmediastreamer, it still complained (why? I cannot explain): /build$ gcc -o program program.o -lm -lsndfile -lmediastreamer -lortp -lGL -lGLU -lglut -lIrrlicht -litpp libmsf_library.a libbas_library.a libtst_library.a /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../../lib/libmediastreamer.so: undefined reference to symbol 'ortp_malloc' /usr/bin/ld: note: 'ortp_malloc' is defined in DSO /usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../../lib/libortp.so so try adding it to the linker command line /usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../../lib/libortp.so: could not read symbols: Invalid operation collect2: ld returned 1 exit status 3. By hazard, I added the litigious "-lortp" last in the command line, after all the files: /build$ gcc -o program program.o -lm -lsndfile -lmediastreamer -lGL -lGLU -lglut -lIrrlicht -litpp libmsf_library.a libbas_library.a libtst_library.a -lortp libmsf_library.a(msf_sinker_glutdisplay.o): In function `glut_animate': /home/user/eclipse-workspace/program/msf_sinker_glutdisplay.c:18: undefined reference to `glutPostRedisplay' [...skipped...] collect2: ld returned 1 exit status So, now IT WORKED! I mean, it found the "ortp_malloc" symbol declared in the "libortp.so" library, but started complaining about not finding various glut, GLU and GL functions (although the libraries are plassed, but *before* the files). 4. Finally, I decided to move all libraries *at the end* of the command line: /build$ gcc -o program program.o libmsf_library.a libbas_library.a libtst_library.a -lortp -lm -lsndfile -lmediastreamer -lGL -lGLU -lglut -lIrrlicht -litpp and, now, the compilation went flawless. Now, the real question remains how to persuade scons to put libraries at the end, but that is outside this topic. I will mark this bug as invalid, since is not a problem with linphone, but with ld and with scons. Thanks for your attention. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/876264 Title: libmediastreamer.so and libortp.so are not properly linked To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linphone/+bug/876264/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
