[oe-commits] Khem Raj : libqpe, opie-taskbar: Fix linking errors found with 2.20 ld

git version control git at git.openembedded.org
Wed Jan 20 06:31:30 UTC 2010


Module: openembedded.git
Branch: shr/unstable
Commit: 487479374e52651b7bf8974a60e8a5e2624ab76b
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=487479374e52651b7bf8974a60e8a5e2624ab76b

Author: Khem Raj <raj.khem at gmail.com>
Date:   Tue Jan 19 12:01:38 2010 -0800

libqpe, opie-taskbar: Fix linking errors found with 2.20 ld

* Fix PR #5376

* Dont remove ~LnkProperties when QTOPIA_INTERNAL_FSLP is not defined
  this could cause g++ to emit default destructor which will be inlined
  and as we asked inlines to have hidden visibility it could make the
  destructor hidden in the final library this happens now because ld
  can merge the visibility attributes which it did not do before.

* Note that this fix might be needed in few other places too.
  We will fix them as we encounter them.

* Remove the workaround in opie-taskbar

Signed-off-by: Khem Raj <raj.khem at gmail.com>

---

 .../unhide_lnkproperties_destructor.patch          |   24 ++++++++++++++++++++
 recipes/libqpe/libqpe-opie_1.2.4.bb                |    3 +-
 recipes/opie-taskbar/opie-taskbar/launcher.patch   |   17 --------------
 recipes/opie-taskbar/opie-taskbar_1.2.4.bb         |    3 +-
 4 files changed, 27 insertions(+), 20 deletions(-)

diff --git a/recipes/libqpe/libqpe-opie/unhide_lnkproperties_destructor.patch b/recipes/libqpe/libqpe-opie/unhide_lnkproperties_destructor.patch
new file mode 100644
index 0000000..65e790a
--- /dev/null
+++ b/recipes/libqpe/libqpe-opie/unhide_lnkproperties_destructor.patch
@@ -0,0 +1,24 @@
+Dont hide destructor, if we do then in moc_lnkproperties.cpp its not
+seen and compiler puts in a default one and inlines it which is then
+hidden as we ask it to use -fvisibility-inlines-hidden
+
+Now linker can merge the symbol visivility  and promotes the most
+restrictive visivility in output which means that the library will have
+the destructor but it will be hidden 
+
+-Khem
+
+Index: library/lnkproperties.h
+===================================================================
+--- library.orig/lnkproperties.h	2010-01-19 10:49:36.771348810 -0800
++++ library/lnkproperties.h	2010-01-19 10:49:59.318857574 -0800
+@@ -45,8 +45,8 @@
+ //      have this class.
+ #ifdef QTOPIA_INTERNAL_FSLP
+     LnkProperties( AppLnk* lnk, QWidget* parent = 0 );
+-    ~LnkProperties();
+ #endif
++    ~LnkProperties();
+ 
+     void done(int);
+ private slots:
diff --git a/recipes/libqpe/libqpe-opie_1.2.4.bb b/recipes/libqpe/libqpe-opie_1.2.4.bb
index 5c1690e..bb154d0 100644
--- a/recipes/libqpe/libqpe-opie_1.2.4.bb
+++ b/recipes/libqpe/libqpe-opie_1.2.4.bb
@@ -1,6 +1,6 @@
 require ${PN}.inc
 
-PR = "${INC_PR}.0"
+PR = "${INC_PR}.1"
 TAG = "${@'v' + bb.data.getVar('PV',d,1).replace('.', '_')}"
 
 SRC_URI = "${HANDHELDS_CVS};tag=${TAG};module=opie/library \
@@ -8,5 +8,6 @@ SRC_URI = "${HANDHELDS_CVS};tag=${TAG};module=opie/library \
            file://unbreak-logging.patch;patch=1 \
            file://citytime-path-2.patch;patch=1 \
            file://no-include-pro.patch;patch=1 \
+           file://unhide_lnkproperties_destructor.patch;patch=1 \
           "
 
diff --git a/recipes/opie-taskbar/opie-taskbar/launcher.patch b/recipes/opie-taskbar/opie-taskbar/launcher.patch
deleted file mode 100644
index e7f90f9..0000000
--- a/recipes/opie-taskbar/opie-taskbar/launcher.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Index: launcher/launcher.cpp
-===================================================================
---- launcher.orig/launcher.cpp	2009-12-23 22:29:17.396221157 +0100
-+++ launcher/launcher.cpp	2009-12-23 22:31:45.849117517 +0100
-@@ -646,10 +646,10 @@
-     // Not supported: flat is simpler for the user
-     } else {
- /* ### libqtopia FIXME also moving docLnks... */
--        LnkProperties prop(appLnk,0 );
-+    /*    LnkProperties prop(appLnk,0 );
- 
-         if (QPEApplication::execDialog( &prop )==QDialog::Accepted && tabs->currentView()==tabs->docView()) {
--        }
-+        }*/
-     }
- }
- 
diff --git a/recipes/opie-taskbar/opie-taskbar_1.2.4.bb b/recipes/opie-taskbar/opie-taskbar_1.2.4.bb
index 7648747..b566045 100644
--- a/recipes/opie-taskbar/opie-taskbar_1.2.4.bb
+++ b/recipes/opie-taskbar/opie-taskbar_1.2.4.bb
@@ -1,5 +1,5 @@
 require ${PN}.inc
-PR = "r2"
+PR = "r3"
 
 SRC_URI = "${HANDHELDS_CVS};tag=${TAG};module=opie/core/apps/calibrate \
            ${HANDHELDS_CVS};tag=${TAG};module=opie/noncore/settings/mediummount \
@@ -14,5 +14,4 @@ SRC_URI = "${HANDHELDS_CVS};tag=${TAG};module=opie/core/apps/calibrate \
 	   file://restart-from-bindir.patch;patch=1 \
            file://server-pro-1.2.4.patch;patch=1 \
 	   file://firstuse-path.patch;patch=1 \
-           file://launcher.patch;patch=1 \
           "





More information about the Openembedded-commits mailing list