libmusicbrainz: fix the build failure caused by gcc dso linkcing change

The libraries for linking are not determined automatically now. All
the needed libraries must be specified explicitly.

This patch fixes the issue for missing libpthread library in the linker
script.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
This commit is contained in:
Nitin A Kamble 2011-01-17 14:01:54 -08:00 committed by Richard Purdie
parent 59986bd748
commit f7c568941a
2 changed files with 32 additions and 2 deletions

View File

@ -0,0 +1,29 @@
dso build fix:
With a dso patch for gcc, which prevents automatic linking of unspecified libraries,
this recipe fails to compile with this error:
| Linking CXX executable cdlookup^M
| cd /disk0/pokybuild/build1/tmp/work/i586-poky-linux/libmusicbrainz-3.0.3-r0/libmusicbrainz-3.0.3/examples && /disk0/pokybuild/build1/tmp/sysroots/x86_64-linux/usr/bin/cmake -E cmake_link_script CMakeFiles/cdlookup.dir/link.txt --verbose=1^M
| /disk0/pokybuild/build1/tmp/sysroots/x86_64-linux/usr/bin/i586-poky-linux/i586-poky-linux-g++ -march=i586 --sysroot=/disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux -fpermissive -Wl,-O1 -Wl,--as-needed CMakeFiles/cdlookup.dir/cdlookup.cpp.o -o cdlookup -rdynamic ../src/libmusicbrainz3.so.6.3.0 -lneon -Wl,-rpath,/disk0/pokybuild/build1/tmp/work/i586-poky-linux/libmusicbrainz-3.0.3-r0/libmusicbrainz-3.0.3/src^M
| /disk0/pokybuild/build1/tmp/sysroots/x86_64-linux/usr/libexec/i586-poky-linux/gcc/i586-poky-linux/4.5.1/ld: ~I: invalid DSO for symbol `pthread_cancel@@GLIBC_2.0' definition^M
| /disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux/lib/libpthread.so.0: could not read symbols: Bad value^M
| collect2: ld returned 1 exit status^M
| make[2]: *** [examples/cdlookup] Error 1^M
| make[2]: Leaving directory `/disk0/pokybuild/build1/tmp/work/i586-poky-linux/libmusicbrainz-3.0.3-r0/libmusicbrainz-3.0.3'
fixing the issue by making linking of libpthread explicit.
Nitin A Kamble <nitin.a.kamble@intel.com>
Date: 2011/01/10
Index: libmusicbrainz-3.0.3/examples/CMakeLists.txt
===================================================================
--- libmusicbrainz-3.0.3.orig/examples/CMakeLists.txt
+++ libmusicbrainz-3.0.3/examples/CMakeLists.txt
@@ -1,5 +1,5 @@
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../include)
-LINK_LIBRARIES(musicbrainz3 ${NEON_LIBRARIES})
+LINK_LIBRARIES(musicbrainz3 ${NEON_LIBRARIES} pthread)
ADD_EXECUTABLE(cdlookup cdlookup.cpp)
ADD_EXECUTABLE(findartist findartist.cpp)
ADD_EXECUTABLE(findtrack findtrack.cpp)

View File

@ -6,10 +6,11 @@ LIC_FILES_CHKSUM = "file://COPYING.txt;md5=fbc093901857fcd118f065f900982c24 \
file://include/musicbrainz3/includes.h;beginline=1;endline=21;md5=9ab2846573f560cea7561da472803a72"
DEPENDS = "expat neon"
PR = "r0"
PR = "r1"
SRC_URI = "http://ftp.musicbrainz.org/pub/musicbrainz/${PN}-${PV}.tar.gz \
file://fix_build_issue_for_gcc_4.5.0.patch"
file://fix_build_issue_for_gcc_4.5.0.patch \
file://dso_linking_change_build_fix.patch "
SRC_URI[md5sum] = "f4824d0a75bdeeef1e45cc88de7bb58a"
SRC_URI[sha256sum] = "7fd459a9fd05be9faec60a9a21caa9a1e9fda03147d58d8c7c95f33582a738c5"