Skip to contentSkip to conversation

revert some of the dso linking changes got fixed by newer linker

PATCH In review Nitin A Kamble 3 participants 7 messages Jan 21, 2011 – Jan 28, 2011

lore
Share & tools
lore
#0 lore raw

cover revert some of the dso linking changes got fixed by newer linker

The newer linker from binutils 2.21 has a fix which avoids linking errors with weak symbols like pthread_cancel, when --no-add-as-needed parameter is passed to the linker.

Pull URL: git://git.pokylinux.org/poky-contrib.git
Branch: nitin/dso_linking_change
Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=nitin/dso_linking_change

Thanks,
Nitin A Kamble <[email protected]>
---

Nitin A Kamble (3):
libmusicbrainz: revert the dso_linking_change patch as the new linker
fixes it
libzypp: revert the dso_linking_change patch as the new linker fixes
it
apt: revert the dso_linking_change patch as the new linker fixes it

 .../apt-0.7.14/dso_linking_change_build_fix.patch  |   25 ----------
 meta/recipes-devtools/apt/apt_0.7.14.bb            |    5 +-
 .../libzypp/dso_linking_change_build_fix.patch     |   50 --------------------
 meta/recipes-extended/libzypp/libzypp_git.bb       |    5 +-
 .../dso_linking_change_build_fix.patch             |   29 -----------
 .../musicbrainz/libmusicbrainz_3.0.3.bb            |    5 +-
 6 files changed, 6 insertions(+), 113 deletions(-)
 delete mode 100644 meta/recipes-devtools/apt/apt-0.7.14/dso_linking_change_build_fix.patch
 delete mode 100644 meta/recipes-extended/libzypp/libzypp/dso_linking_change_build_fix.patch
 delete mode 100644 meta/recipes-multimedia/musicbrainz/libmusicbrainz-3.0.3/dso_linking_change_build_fix.patch
Signature · 1 line
1.7.3.4
#1 lore raw

PATCH 1/3 libmusicbrainz: revert the dso_linking_change patch as the new linker fixes it

The newer binutils recipe of version 2.21 has a fix for ld which avoids an issue where weak symbols like pthread_cancel were causing linking to fail when --no-add-as-needed parameter was passed to ld.

See more information here: http://bugs.debian.org/591405

This makes some of the fixes for breakage after gcc dso linking change unnecessary and this is one of them.

---
 .../dso_linking_change_build_fix.patch             |   29 --------------------
 .../musicbrainz/libmusicbrainz_3.0.3.bb            |    5 +--
 2 files changed, 2 insertions(+), 32 deletions(-)
 delete mode 100644 meta/recipes-multimedia/musicbrainz/libmusicbrainz-3.0.3/dso_linking_change_build_fix.patch
meta/recipes-multimedia/musicbrainz/libmusicbrainz-3.0.3/dso_linking_change_build_fix.patch deleted +0 -29
deleted file mode 100644
index 5f0cce2..0000000
@@ -1,29 +0,0 @@
-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 <[email protected]>
-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)
meta/recipes-multimedia/musicbrainz/libmusicbrainz_3.0.3.bb +2 -3
index bd3c213..861e6fc 100644
@@ -6,11 +6,10 @@ LIC_FILES_CHKSUM = "file://COPYING.txt;md5=fbc093901857fcd118f065f900982c24 \
                     file://include/musicbrainz3/includes.h;beginline=1;endline=21;md5=9ab2846573f560cea7561da472803a72"
 DEPENDS = "expat neon"
 
-PR = "r1"
+PR = "r2"
 
 SRC_URI = "http://ftp.musicbrainz.org/pub/musicbrainz/${PN}-${PV}.tar.gz \
-           file://fix_build_issue_for_gcc_4.5.0.patch \
-           file://dso_linking_change_build_fix.patch "
+           file://fix_build_issue_for_gcc_4.5.0.patch "
 
 SRC_URI[md5sum] = "f4824d0a75bdeeef1e45cc88de7bb58a"
 SRC_URI[sha256sum] = "7fd459a9fd05be9faec60a9a21caa9a1e9fda03147d58d8c7c95f33582a738c5"
Signature · 1 line
1.7.3.4
#2 lore raw

PATCH 2/3 libzypp: revert the dso_linking_change patch as the new linker fixes it

In reply to Nitin A Kamble

The newer binutils recipe of version 2.21 has a fix for ld which avoids an issue where weak symbols like pthread_cancel were causing linking to fail when --no-add-as-needed parameter was passed to ld.

See more information here: http://bugs.debian.org/591405

This makes some of the fixes for breakage after gcc dso linking change unnecessary and this is one of them.

---
 .../libzypp/dso_linking_change_build_fix.patch     |   50 --------------------
 meta/recipes-extended/libzypp/libzypp_git.bb       |    5 +-
 2 files changed, 2 insertions(+), 53 deletions(-)
 delete mode 100644 meta/recipes-extended/libzypp/libzypp/dso_linking_change_build_fix.patch
meta/recipes-extended/libzypp/libzypp/dso_linking_change_build_fix.patch deleted +0 -50
deleted file mode 100644
index 496a3ca..0000000
@@ -1,50 +0,0 @@
-after gcc linking has changed, all the libraries must be explicitely specified 
-This patch avoids these linking errors:
-
-
-Linking CXX executable DumpSelectable
-cd /build_disk/poky_build/build0/tmp/work/i586-poky-linux/libzypp-0.0-git0+4494797d5b0369365b1af63921de45b197ead64f-r4/git/tools && /build_disk/poky_build/build0/tmp/sysroots/x86_64-linux/usr/bin/cmake -E cmake_link_script CMakeFiles/DumpSelectable.dir/link.txt --verbose=1
-/build_disk/poky_build/build0/tmp/sysroots/x86_64-linux/usr/bin/i586-poky-linux/i586-poky-linux-g++   -march=i586  --sysroot=/build_disk/poky_build/build0/tmp/sysroots/i586-poky-linux  -fpermissive -fno-strict-aliasing -fPIC -g -Wall -Werror=format-security -Woverloaded-virtual -Wnon-virtual-dtor -Wl,-as-needed  -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed CMakeFiles/DumpSelectable.dir/DumpSelectable.cc.o  -o DumpSelectable -rdynamic ../zypp/libzypp.so.800.1.1 -lboost_program_options-mt -lutil -lrpm -lcurl -lxml2 -lz -Wl,-Bstatic -lsatsolver -lsatsolverext -Wl,-Bdynamic -lexpat -lssl -lcrypto -lboost_signals-mt -ludev -Wl,-rpath,/build_disk/poky_build/build0/tmp/work/i586-poky-linux/libzypp-0.0-git0+4494797d5b0369365b1af63921de45b197ead64f-r4/git/zypp
-/build_disk/poky_build/build0/tmp/sysroots/x86_64-linux/usr/libexec/i586-poky-linux/gcc/i586-poky-linux/4.5.1/ld: Ý: invalid DSO for symbol `pthread_cancel@@GLIBC_2.0' definition
-/build_disk/poky_build/build0/tmp/sysroots/i586-poky-linux/lib/libpthread.so.0: could not read symbols: Bad value
-collect2: ld returned 1 exit status
-make[2]: *** [tools/DumpSelectable] Error 1
-
-
-
-| Linking CXX executable COW_debug
-| cd /build_disk/poky_build/build0/tmp/work/i586-poky-linux/libzypp-0.0-git0+4494797d5b0369365b1af63921de45b197ead64f-r5/git/examples && /build_disk/poky_build/build0/tmp/sysroots/x86_64-linux/usr/bin/cmake -E cmake_link_script CMakeFiles/COW_debug.dir/link.txt --verbose=1
-| /build_disk/poky_build/build0/tmp/sysroots/x86_64-linux/usr/bin/i586-poky-linux/i586-poky-linux-g++   -march=i586  --sysroot=/build_disk/poky_build/build0/tmp/sysroots/i586-poky-linux  -fpermissive -fno-strict-aliasing -fPIC -g -Wall -Werror=format-security -Woverloaded-virtual -Wnon-virtual-dtor -Wl,-as-needed  -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed CMakeFiles/COW_debug.dir/COW_debug.cc.o  -o COW_debug -rdynamic ../zypp/libzypp.so.800.1.1 -lutil -lrpm -lcurl -lxml2 -lz -Wl,-Bstatic -lsatsolver -lsatsolverext -Wl,-Bdynamic -lexpat -lssl -lcrypto -lboost_signals-mt -ludev -Wl,-rpath,/build_disk/poky_build/build0/tmp/work/i586-poky-linux/libzypp-0.0-git0+4494797d5b0369365b1af63921de45b197ead64f-r5/git/zypp
-| /build_disk/poky_build/build0/tmp/sysroots/x86_64-linux/usr/libexec/i586-poky-linux/gcc/i586-poky-linux/4.5.1/ld: �: invalid DSO for symbol `pthread_cancel@@GLIBC_2.0' definition
-| /build_disk/poky_build/build0/tmp/sysroots/i586-poky-linux/lib/libpthread.so.0: could not read symbols: Bad value
-| collect2: ld returned 1 exit status
-| make[2]: *** [examples/COW_debug] Error 1
-
-
-Nitin A Kamble <[email protected]>
-Date: 2011/01/18
-
-Index: git/tools/CMakeLists.txt
-===================================================================
---- git.orig/tools/CMakeLists.txt	2010-12-19 23:59:02.000000000 -0800
-+++ git/tools/CMakeLists.txt	2011-01-18 17:07:52.132140223 -0800
-@@ -13,6 +13,7 @@
-   )
-   TARGET_LINK_LIBRARIES( ${loop_var}
-     zypp
-+    pthread
-     boost_program_options-mt
-   )
- ENDFOREACH( loop_var )
-Index: git/examples/CMakeLists.txt
-===================================================================
---- git.orig/examples/CMakeLists.txt	2010-12-19 23:59:01.000000000 -0800
-+++ git/examples/CMakeLists.txt	2011-01-18 17:17:41.760411373 -0800
-@@ -8,6 +8,7 @@
-   )
-   TARGET_LINK_LIBRARIES( ${loop_var}
-     zypp
-+    pthread
-   )
- ENDFOREACH( loop_var )
- 
meta/recipes-extended/libzypp/libzypp_git.bb +2 -3
index 7036c64..c65ae46 100644
@@ -13,12 +13,11 @@ RDEPENDS_${PN} = "sat-solver"
 
 S = "${WORKDIR}/git"
 PV = "0.0-git${SRCPV}"
-PR = "r5"
+PR = "r6"
 
 SRC_URI = "git://gitorious.org/opensuse/libzypp.git;protocol=git \
            file://no-doc.patch \
-           file://rpm5.patch \
-           file://dso_linking_change_build_fix.patch"
+           file://rpm5.patch "
 
 SRC_URI_append_mips = " file://mips-workaround-gcc-tribool-error.patch"
 
Signature · 1 line
1.7.3.4
#3 lore raw

PATCH 3/3 apt: revert the dso_linking_change patch as the new linker fixes it

In reply to Nitin A Kamble

The newer binutils recipe of version 2.21 has a fix for ld which avoids an issue where weak symbols like pthread_cancel were causing linking to fail wh --no-add-as-needed parameter was passed to ld.

See more information here: http://bugs.debian.org/591405

This makes some of the fixes for breakage after gcc dso linking change unnecessary and this is one of them.

---
 .../apt-0.7.14/dso_linking_change_build_fix.patch  |   25 --------------------
 meta/recipes-devtools/apt/apt_0.7.14.bb            |    5 +--
 2 files changed, 2 insertions(+), 28 deletions(-)
 delete mode 100644 meta/recipes-devtools/apt/apt-0.7.14/dso_linking_change_build_fix.patch
meta/recipes-devtools/apt/apt-0.7.14/dso_linking_change_build_fix.patch deleted +0 -25
deleted file mode 100644
index b69849f..0000000
@@ -1,25 +0,0 @@
-after gcc linking has changed, all the libraries must be explicitely specified 
-This patch avoids these linking errors:
-
-Building program /build_disk/poky_build/build0/tmp/work/i586-poky-linux/apt-0.7.14-r4/apt-0.7.14/bin/methods/https
-/build_disk/poky_build/build0/tmp/sysroots/x86_64-linux/usr/libexec/i586-poky-linux/gcc/i586-poky-linux/4.5.1/ld: <86>: invalid DSO for symbol `pthread_cancel@@GLIBC_2.0' definition
-/build_disk/poky_build/build0/tmp/sysroots/i586-poky-linux/lib/libpthread.so.0: could not read symbols: Bad value
-collect2: ld returned 1 exit status
-make[2]: *** [/build_disk/poky_build/build0/tmp/work/i586-poky-linux/apt-0.7.14-r4/apt-0.7.14/bin/methods/https] Error 1
-
-Nitin A Kamble <[email protected]>
-Date: 2011/01/19
-
-Index: apt-0.7.14/methods/makefile
-===================================================================
---- apt-0.7.14.orig/methods/makefile	2008-05-28 06:22:14.000000000 -0700
-+++ apt-0.7.14/methods/makefile	2011-01-19 16:30:07.369010214 -0800
-@@ -54,7 +54,7 @@
- 
- # The https method
- PROGRAM=https
--SLIBS = -lapt-pkg -lcurl
-+SLIBS = -lapt-pkg -lcurl -lpthread
- LIB_MAKES = apt-pkg/makefile
- SOURCE = https.cc
- include $(PROGRAM_H)
meta/recipes-devtools/apt/apt_0.7.14.bb +2 -3
index b9b278b..aa155d9 100644
@@ -3,11 +3,10 @@ RDEPENDS_${PN} = "dpkg"
 LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=0636e73ff0215e8d672dc4c32c317bb3"
 require apt.inc
 
-PR = "r5"
+PR = "r6"
 
 SRC_URI += "file://nodoc.patch \
-	    file://includes-fix.patch \
-	    file://dso_linking_change_build_fix.patch "
+	    file://includes-fix.patch "
 
 SRC_URI[md5sum] = "19efa18fb1ef20c58b9b44e94258b814"
 SRC_URI[sha256sum] = "8fc06effaf8a4e4333308eedcdc6840f1c8056f2e924210f151dfc076bcd4045"
Signature · 1 line
1.7.3.4
#4 lore raw
In reply to Nitin A Kamble
Quoted 4 lines · Nitin A Kamble

The newer linker from binutils 2.21 has a fix which avoids linking errors with weak symbols like pthread_cancel, when --no-add-as-needed parameter is passed to the linker.

Nitin,

Seems there is a problem with Mutter and the DSO changes.

arm-poky-linux-gnueabi-libtool: link: cannot find the library
/usr/lib/libpangocairo-1.0.la' or unhandled argument /usr/lib/libpangocairo-1.0.la'
make[4]: *** [wm-tester] Error 1
make[4]: Leaving directory `/intel/poky/distro/build/tmp/work/armv5te-poky-linux-gnueabi/mutter-2.28.1+git0+c96345dd81176f171c2d15dd9d5c5b20f334f842-r18/git/src/wm-tester' make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/intel/poky/distro/build/tmp/work/armv5te-poky-linux-gnueabi/mutter-2.28.1+git0+c96345dd81176f171c2d15dd9d5c5b20f334f842-r18/git/src' make[2]: *** [all] Error 2
make[2]: Leaving directory `/intel/poky/distro/build/tmp/work/armv5te-poky-linux-gnueabi/mutter-2.28.1+git0+c96345dd81176f171c2d15dd9d5c5b20f334f842-r18/git/src' make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/intel/poky/distro/build/tmp/work/armv5te-poky-linux-gnueabi/mutter-2.28.1+git0+c96345dd81176f171c2d15dd9d5c5b20f334f842-r18/git'
make: *** [all] Error 2

Please investigate,

Thanks

Quoted 27 lines

Pull URL: git://git.pokylinux.org/poky-contrib.git
Branch: nitin/dso_linking_change
Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=nitin/dso_linking_change

Thanks,
Nitin A Kamble<[email protected]>
---

Nitin A Kamble (3):
libmusicbrainz: revert the dso_linking_change patch as the new linker
fixes it
libzypp: revert the dso_linking_change patch as the new linker fixes
it
apt: revert the dso_linking_change patch as the new linker fixes it

  .../apt-0.7.14/dso_linking_change_build_fix.patch  |   25 ----------
  meta/recipes-devtools/apt/apt_0.7.14.bb            |    5 +-
  .../libzypp/dso_linking_change_build_fix.patch     |   50 --------------------
  meta/recipes-extended/libzypp/libzypp_git.bb       |    5 +-
  .../dso_linking_change_build_fix.patch             |   29 -----------
  .../musicbrainz/libmusicbrainz_3.0.3.bb            |    5 +-
  6 files changed, 6 insertions(+), 113 deletions(-)

delete mode 100644 meta/recipes-devtools/apt/apt-0.7.14/dso_linking_change_build_fix.patch delete mode 100644 meta/recipes-extended/libzypp/libzypp/dso_linking_change_build_fix.patch delete mode 100644 meta/recipes-multimedia/musicbrainz/libmusicbrainz-3.0.3/dso_linking_change_build_fix.patch

#5 lore raw

Hi Saul,

Quoted 26 lines · Saul Wold
Quoted 4 lines · Nitin A Kamble

The newer linker from binutils 2.21 has a fix which avoids linking errors with weak symbols like pthread_cancel, when --no-add-as-needed parameter is passed to the linker.

Nitin,

Seems there is a problem with Mutter and the DSO changes.

arm-poky-linux-gnueabi-libtool: link: cannot find the library
`/usr/lib/libpangocairo-1.0.la' or unhandled argument
`/usr/lib/libpangocairo-1.0.la'
make[4]: *** [wm-tester] Error 1
make[4]: Leaving directory `/intel/poky/distro/build/tmp/work/armv5te-poky-linux-gnueabi/mutter-2.28.1+git0+c96345dd81176f171c2d15dd9d5c5b20f334f842-r18/git/src/wm-tester' make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/intel/poky/distro/build/tmp/work/armv5te-poky-linux-gnueabi/mutter-2.28.1+git0+c96345dd81176f171c2d15dd9d5c5b20f334f842-r18/git/src' make[2]: *** [all] Error 2
make[2]: Leaving directory `/intel/poky/distro/build/tmp/work/armv5te-poky-linux-gnueabi/mutter-2.28.1+git0+c96345dd81176f171c2d15dd9d5c5b20f334f842-r18/git/src' make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/intel/poky/distro/build/tmp/work/armv5te-poky-linux-gnueabi/mutter-2.28.1+git0+c96345dd81176f171c2d15dd9d5c5b20f334f842-r18/git'
make: *** [all] Error 2

Quoted 1 line

Please investigate,

This looks more like a libtool issue, possibly introduced by the recent libtool changes. I think this happens in an incremental build when you have half a sysroot of "old" style libs and mix in the new style. I suspect Scott mainly tested those from scratch. Does a cleanall of pango/cairo fix this? If so, we probably need to bump the version number that governs sysroots (and the sstate version number too).

Cheers,

Richard

#6 lore raw
In reply to Nitin A Kamble
Quoted 27 lines · Nitin A Kamble

The newer linker from binutils 2.21 has a fix which avoids linking errors with weak symbols like pthread_cancel, when --no-add-as-needed parameter is passed to the linker.

Pull URL: git://git.pokylinux.org/poky-contrib.git
Branch: nitin/dso_linking_change
Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=nitin/dso_linking_change

Thanks,
Nitin A Kamble<[email protected]>
---

Nitin A Kamble (3):
libmusicbrainz: revert the dso_linking_change patch as the new linker
fixes it
libzypp: revert the dso_linking_change patch as the new linker fixes
it
apt: revert the dso_linking_change patch as the new linker fixes it

  .../apt-0.7.14/dso_linking_change_build_fix.patch  |   25 ----------
  meta/recipes-devtools/apt/apt_0.7.14.bb            |    5 +-
  .../libzypp/dso_linking_change_build_fix.patch     |   50 --------------------
  meta/recipes-extended/libzypp/libzypp_git.bb       |    5 +-
  .../dso_linking_change_build_fix.patch             |   29 -----------
  .../musicbrainz/libmusicbrainz_3.0.3.bb            |    5 +-
  6 files changed, 6 insertions(+), 113 deletions(-)
Quoted 4 lines

delete mode 100644 meta/recipes-devtools/apt/apt-0.7.14/dso_linking_change_build_fix.patch delete mode 100644 meta/recipes-extended/libzypp/libzypp/dso_linking_change_build_fix.patch delete mode 100644 meta/recipes-multimedia/musicbrainz/libmusicbrainz-3.0.3/dso_linking_change_build_fix.patch

Pulled into Master

Thanks
Sau!